如何在R中的单个数据框中合并相似的列?

时间:2018-07-31 00:43:33

标签: r dataframe

考虑我在R中有此数据框

https://i.stack.imgur.com/SV92V.png

如何将其转换为:

https://i.stack.imgur.com/XkIss.png

我有这些具有相同名称的多列。所以现在我必须保留所有唯一的列名,并以某种方式以行方式插入它们的值

1 个答案:

答案 0 :(得分:0)

您可以使用以下脚本:

df <- data.frame(matrix(c(1:7), ncol = 7))
names(df) <- c(rep("a", 4), rep("b", 3))
dfi <- as.data.frame(t(df))
dfi$id <- factor(names(df))
max_n <- max(tapply(dfi$V1, dfi$id, length))

ll <- split(dfi, dfi$id)
df_out <- as.data.frame(sapply(ll, function(x) {
    c(x$V1, rep(NA, max_n - length(x$V1)))  
}))

df_out

输出:

  a  b
1 1  5
2 2  6
3 3  7
4 4 NA