我有多个数据表,并且都有一个名为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
?
答案 0 :(得分:1)
我会将数据集保留在列表中,而不是更新全局环境中的数据集对象,因为大多数操作都可以在列表中完成(包括读取文件和写入输出文件)。但是,如果你坚持,我们可以使用list2env
来更新原始数据集对象和子集数据集
lst <- lapply(mget(tables),function(x)x[ID %in% vec,])
list2env(lst, envir=.GlobalEnv)
答案 1 :(得分:0)
您也可以在列表中命名数据集:
exec