luc*_*ano 12 r vector dataframe
我有这个命名的矢量:
x <- 1:5
names(x) <- c('0 15', '1 15', '2 15', '0 16', '1 16')
Run Code Online (Sandbox Code Playgroud)
转换x为此数据框的最佳方法是什么:
xDF <- data.frame(V1 = c(0, 1, 2, 0, 1), V2 = c(15, 15, 15, 16, 16), V3 = 1:5)
Run Code Online (Sandbox Code Playgroud)
A5C*_*2T1 15
这是一个非常直接的方法:
cbind(read.table(text = names(x)), x)
V1 V2 x
0 15 0 15 1
1 15 1 15 2
2 15 2 15 3
0 16 0 16 4
1 16 1 16 5
Run Code Online (Sandbox Code Playgroud)
在这种情况下,read.table将自动处理拆分names(x)组件(默认情况下,按空格,但如果需要,可以指定其他字符).
您也可以x直接在cbind以下位置设置名称:
cbind(read.table(text = names(x)), V3 = x)
Run Code Online (Sandbox Code Playgroud)
更直接的方法是使用cSplit我的"splitstackshape"包,如下所示:
library(splitstackshape)
cSplit(stack(x), "ind", " ")
Run Code Online (Sandbox Code Playgroud)
我会做这样的事情:
res = data.frame(cbind(do.call('rbind', strsplit(names(x), " ")), x))
res
V1 V2 x
0 15 0 15 1
1 15 1 15 2
2 15 2 15 3
0 16 0 16 4
1 16 1 16 5
Run Code Online (Sandbox Code Playgroud)
请记住,数据类型还不正确,前两列是factor.