我是R的新手并且可能是一个非常基本的问题,但是我不确定该怎么称呼这个操作所以我只是称它为“崩溃”。我有一个包含许多列的数据框如下:
x <- data.frame(matrix(0, 10, 10))
x[1, 1:5] <- 1
x[3,6:10] <- 2
x[5,6:10] <- 3
x[6,6:10] <- 4
x[8, 1:5] <- 5
......等等n行。所以前10个看起来像这样:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 1 1 1 1 1 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 2 2 2 2 2
4 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 3 3 3 3 3
6 0 0 0 0 0 4 4 4 4 4
7 0 0 0 0 0 0 0 0 0 0
8 5 5 5 5 5 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0 0 0
我想水平移动列X6:X11
,以便我有一个数据框如下:
X1 X2 X3 X4 X5
1 1 1 1 1 1
2 0 0 0 0 0
3 2 2 2 2 2
4 0 0 0 0 0
5 3 3 3 3 3
6 4 4 4 4 4
7 0 0 0 0 0
8 5 5 5 5 5
9 0 0 0 0 0
10 0 0 0 0 0
..但我仍坚持如何有效地做到这一点。对R新手的任何帮助都非常感谢。
谢谢!
答案 0 :(得分:2)
如果这就是你要做的全部,继续以对待矩阵的方式处理x
。你会得到你想要的结果:
x[,1:5] + x[,6:10]
作为data.frame
。