首页 > 解决方案 > R: data.table 同时对多个数据集进行子集化

问题描述

我目前在 R 中使用 data.table 并尝试将几个数据表的列表子集化为一个名为“名称”的特定变量。我曾尝试使用 lapply 这样做,但没有成功。我的代码有问题吗?

这是我尝试过的:

   data_tables<-c("one", "two", "three", "four", "five")
   lapply(mget(data_tables),function(x)x[, c("name")])

标签: rdata.table

解决方案


我们可以用.(

library(data.table)
lapply(mget(data_tables),function(x)x[, .(name)])

或指定列/列.SDcols并对其进行子集化.SD

lapply(mget(data_tables),function(x)x[, .SD, .SDcols = 'name'])

或者,如果我们想提取为向量,请使用[[

lapply(mget(data_tables),function(x) x[["name"]])

推荐阅读