我有一个ColMeans()的数字结构,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0.01293814 0.96154639 0.99824742 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000
我试图将这种结构扁平化为:
1 0.01293814 2 0.96154639 3 0.99824742 4 1.00000000
答案 0 :(得分:0)
我们可以使用paste
v2 <- paste(names(v1), v1, collapse=" ")
v2
#[1] "1 0.01293814 2 0.96154639 3 0.99824742"
如果我们需要vector
值
scan(text=v2, what=numeric(), quiet=TRUE)
#[1] 1.00000000 0.01293814 2.00000000 0.96154639 3.00000000 0.99824742
或我们可以rbind
如另一篇文章所示,只需c
c(rbind(names(v1), v1))
#[1] "1" "0.01293814" "2" "0.96154639" "3" "0.99824742"
v1 <- setNames(c(0.01293814, 0.96154639, 0.99824742), 1:3)
答案 1 :(得分:0)
这是我的测试载体:
------------------
您可以先在名称和值上使用0 <--- remainder
:
> 1:3 -> foo
> 6:4 -> names(foo)
> foo
6 5 4
1 2 3
现在,将矩阵转回矢量,删除第二个维度:
rbind
你当然可以将其中的一些步骤放在同一个表达式中,我会一步一步地做出明确的结果。
据我所知,> rbind(as.numeric(names(foo)), as.numeric(foo)) -> bar
> bar
[,1] [,2] [,3]
[1,] 6 5 4
[2,] 1 2 3
然后将它展平回矢量是“拉链”的习惯用法吗?对R有更深入了解的人可能会纠正我。