我想知道如何output
在BASE R中实现我的期望?
input <- c(a_1 = 2, a_2 = 3, b_1 = 1, b_2 = 0)
output <- data.frame(a = 2:3, b = 1:0)
我们可以split
基于names
“输入”的子字符串并将其转换为data.frame
data.frame(split(unname(input), sub("_\\d+$", "", names(input))))
# a b
#1 2 1
#2 3 0
或使用 unstack
nm1 <- sub('_\\d+$', '', names(input))
unstack(input ~ nm1, data.frame(input, nm1))
matrix
如果'a','b'的长度相等,则另一个选择是构造
matrix(input, ncol = 2, dimnames = list(NULL,
unique(substring(names(input), 1, 1))))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句