【问题标题】:R combine data frame columns and transpose into new data frameR组合数据框列并转置为新数据框
【发布时间】:2015-01-29 01:47:54
【问题描述】:

我有一系列数据帧,我希望从中构造一个新数据帧,其中每一行代表一个原始数据帧和行数据的列元素。即:

data1 <- c("bill",1,"a","b")
data2 <- c("bob",2,"a","a")
data3 <- c("bert",3,"c","b")
data4 <- c("bill",1,"b","b")
data5 <- c("bob",2,"b","a")
data6 <- c("bert",3,"a","b")


file1 <- rbind(data1,data2,data3)
file2 <- rbind(data4,data5,data6)

有了这个模型数据,我想要一个这样的数据框:

      bill    bob    bert
file1  a b    a a     c b
file2  b b    b a     a b

其中每一行代表一个文件,每个列标题是这些文件“bill”、“bob”、“bert”等中的一行,其中包含来自文件第 3 列和第 4 列的数据。

有没有简单的方法来实现这一点?

谢谢,

马特

【问题讨论】:

    标签: r


    【解决方案1】:

    另一种方式:

    z <- list(file1=file1,file2=file2)
    res <- t(sapply(z, function(d) paste(d[,3],d[,4])))
    colnames(res) <- file1[,1]
    
    res
    #        bill  bob   bert 
    # file1 "a b" "a a" "c b"
    # file2 "b b" "b a" "a b"
    

    【讨论】:

    • @akrun,是的,但它被硬编码到第 3 列和第 4 列。您的解决方案可以处理任意数量的列。
    • 谢谢,这很适合我想要的,也很容易传输到更多文件。
    猜你喜欢
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2016-12-09
    • 2021-08-19
    相关资源
    最近更新 更多