【问题标题】:insert one data frame into another data frame by columns按列将一个数据框插入另一个数据框
【发布时间】:2014-02-14 23:55:53
【问题描述】:

抱歉,如果有的话,我没有从这里过去的帖子中找到类似的答案。

假设我有两个简单的 n×m 数据帧,df1 和 df2。现在我想将它们组合起来得到一个名为 df 的 n×2m 数据框。通过这样做,我希望df2中的第1列成为df中的第2列,df2中的第2列成为df中的第4列,df2中的第3列成为df中的第6列......同时,df1中的第1列是列df 中的第 1 列,df1 中的第 2 列是 df 中的第 3 列...

表示在新的df中,第1、3、5、7...列来自df1,第2、4、6、8...列来自df2。

一般来说,似乎每隔一列将 df2 插入到 df1 中,将 df2 的每一列放在 df1 中相应列的后面。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 也许我不够清楚,假设我有两个具有相同行数的数据框,但一个具有列名 V1 V2 V3,另一个具有列名 V4、V5、V6。如果我将它们组合起来,新的数据框应该有列名 V1 V2 V3 V4 V5 V6,但我希望新数据排列为 V1 V4 V2 V5 V3 V6,而不是 V1 V3 V5 V2 V4 V6。你能帮忙生成这样的序列吗?

标签: r dataframe


【解决方案1】:

为什么要这样,毕竟是变量,但如果你想这样做

m<-ncol(df1)
df<-merge(df1,df2)
df<-df[,c(seq(1,2*m, by=2),seq(2,2*m, by=2))

【讨论】:

  • +1,但我认为您遗漏了 m 的定义(应该是 2m 吗?)。
  • @BrodieG,对,应该是2m,谢谢提醒
  • 简单地说,如果我有 2n 个从 1 到 2n 的数字,我如何生成一个排列为 1、n+1、2、n+2、3、n+3 的序列。 .. , n, 2n?
  • 谢谢你和@BrodieG,看看我对问题的更新,我找到了生成像1、n+1、2、n+2、3、n+3这样排列的序列的解决方案, ... , n, 2n。说 t=rep(c(1:n), each=2, times=1), h=rep(c(0, n), times=n), 那么 t+h 就是我想要的。还是非常感谢~
猜你喜欢
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 2017-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多