【问题标题】:Problems with a merge inside a loop循环内合并的问题
【发布时间】:2018-03-23 14:22:09
【问题描述】:

我有一个特定的 data.frame(数据),我想与 40 多个其他 data.frames (df.1 df.40) 合并,总是使用同一列“IID”。 我首先使用 df.n 创建一个向量。前 5 个:

names<-c(df.1,df.2,df.3,df.4,df.5)

然后我尝试使用这个脚本没有成功:

lst<-list()
for (i in names){
lst[[i]]<-merge(data,[i],by="IID")
}

然后我的意图是:

new_names<-c(d.1,d.2,d.3,d.4,d.5)

for (i in 1:length(lst)) {
  assign(new_names[i], lst[[i]])
}

但是,我无法正确完成第一个循环。我如何在合并函数处循环出现问题。

【问题讨论】:

  • names&lt;-c(df.1,df.2,df.3,df.4,df.5) 这行对我来说没有多大意义。那应该是names&lt;-c("df.1","df.2","df.3","df.4","df.5") 吗?或者你有 data.frames 的列表吗?
  • 不,我没有 data.frames 列表。我也试过用“”。但是没有用。也许是对的……
  • 所有数据框的列数是否相同?
  • 是的,相同的列和相同的列名。

标签: r loops merge


【解决方案1】:

您缺少get,因此它实际上获取了您要合并的数据框。像这样:

lst<-list()
for (i in names){
  lst[[i]]<-merge(data,get(i),by="IID")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 2011-10-31
    • 2021-12-05
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    相关资源
    最近更新 更多