数据框中的列组合

时间:2019-12-05 08:37:11

标签: r dataframe

我想通过以下示例合并该列。新表的名称并不重要 如果已经存在这样的主题,我会要求搜索链接或密码。

enter image description here

3 个答案:

答案 0 :(得分:3)

如果要将替代列合并为一列,则可以将split.default与R的回收属性一起使用,以对其进行拆分。

new_df <- as.data.frame(sapply(split.default(df, c("A", "B")), unlist))
rownames(new_df) <- NULL

new_df
#    A  B
#1   1 11
#2   2 12
#3   3 13
#4   4 14
#5   5 15
#6   6 16
#7   7 17
#8   8 18
#9   9 19
#10 10 20

数据

df <- data.frame(a = 1:5, b = 11:15, c = 6:10, d = 16:20)

答案 1 :(得分:3)

另一个想法是在该列上使用布尔索引,将每个子集堆叠在一起并在最后绑定它们,即(使用@RonakShah的数据集)

setNames(cbind(stack(df[c(TRUE, FALSE)])[1], 
               stack(df[c(FALSE, TRUE)])[1]), 
               c('A', 'B'))

给出,

    A  B
1   1 11
2   2 12
3   3 13
4   4 14
5   5 15
6   6 16
7   7 17
8   8 18
9   9 19
10 10 20

答案 2 :(得分:1)

除了@Ronak Shah@Sotos的解决方案之外,这是获取替代列索引并形成新数据框的另一种方法

idx <- seq(1,ncol(df),by = 2)
data.frame(A=unlist(df[idx]),B=unlist(df[-idx]),row.names = NULL)