【问题标题】:Data manipulation with R: Restructuring Data使用 R 进行数据操作:重构数据
【发布时间】:2010-12-30 23:37:18
【问题描述】:

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

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

【问题讨论】:

    标签: r


    【解决方案1】:
    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
    

    需要我多说吗?

    【讨论】:

    • 为什么不建议使用数字作为变量名?
    • 爱德华多是对的。 R 不允许您存储以数字开头的变量。试试这个:1b
    • 感谢您的解释!非常感谢
    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 2019-10-18
    • 2018-05-04
    • 2023-03-23
    • 2017-02-15
    相关资源
    最近更新 更多