使用lapply

时间:2015-05-20 20:02:12

标签: r lapply

我有多个数据表,并且都有一个名为ID的公共列。我有一个向量vec,其中包含一组ID值。 我想使用lapply使用vec对所有数据表进行子集化 我理解如何使用lapply来对数据表进行子集化,但我的问题是如何将子集化结果分配回原始数据表 这是我试过的:

 tables<-c("dt1","dt2","dt3","dt4")
 lapply(mget(tables),function(x)x[ID %in% vec,])

上面给出了所有数据表的子集,但是如何将它们分配回dt1,dt2,dt3,dt4

2 个答案:

答案 0 :(得分:1)

我会将数据集保留在列表中,而不是更新全局环境中的数据集对象,因为大多数操作都可以在列表中完成(包括读取文件和写入输出文件)。但是,如果你坚持,我们可以使用list2env来更新原始数据集对象和子集数据集

 lst <- lapply(mget(tables),function(x)x[ID %in% vec,])
 list2env(lst, envir=.GlobalEnv)

答案 1 :(得分:0)

您也可以在列表中命名数据集:

exec