使用R进行数据操作:重组数据

时间:2009-12-30 01:52:59

标签: r

我有一个如下所示的数据集:

a <- data.frame(rep(1,5),1:5,1:5)
b <- data.frame(rep(2,5),1:5,1:5)
colnames(a) <- c(1,2,3)
colnames(b) <- c(1,2,3)
c <- rbind(a,b)

   1 2 3
1  1 1 1
2  1 2 2
3  1 3 3
4  1 4 4
5  1 5 5
6  2 1 1
7  2 2 2
8  2 3 3
9  2 4 4
10 2 5 5

但我希望将其重组为:

    2_1 2_2 3_1 3_2
   1  1   1   1   1
   2  2   2   2   2 
   3  3   3   3   4
   4  4   4   4   4 
   5  5   5   5   5

1 个答案:

答案 0 :(得分:4)

a <- data.frame(rep(1,5),1:5,1:5)
b <- data.frame(rep(2,5),1:5,1:5)
colnames(b) <- colnames(a) <- paste("a", c(1,2,3), sep='')
d <- rbind(a,b)
library(reshape)
recast(d, a2 ~ a1, measure.var="a3")

我稍微改变了你的例子,因为它有数字作为变量名。不建议这样做,因为它允许以下废话:

 "1" <- 3
print(1)
[1] 1
print("1")
[1] "1"
print(`1`)
[1] 3

需要我说更多吗?