R:data.table用多个lappy语句构建函数
我目前正在使用data.table在R中工作,并试图在一长串数据表上完成一系列数据处理步骤。我已经找到了一些单独的lappy和步骤,但我不确定如何将这些步骤链接到一个函数中,以便我的数据表列表通过每个步骤,然后在最后使用rbindlist组合出来 以下是我正在努力完成的数据处理步骤: 1将所有数据表子集为一个变量-名称 2将包含这一变量的每个数据表从长转换为宽 3添加一个变量数据集,用于保存其中每个表的名称 4使用rbindlist将数据表合并成一个大数据表 以下是我到目前为止掌握的代码片段,但我不确定如何将它们组合成一个函数,以便将一个列表从一个步骤传递到下一个步骤:R:data.table用多个lappy语句构建函数,r,data.table,R,Data.table,我目前正在使用data.table在R中工作,并试图在一长串数据表上完成一系列数据处理步骤。我已经找到了一些单独的lappy和步骤,但我不确定如何将这些步骤链接到一个函数中,以便我的数据表列表通过每个步骤,然后在最后使用rbindlist组合出来 以下是我正在努力完成的数据处理步骤: 1将所有数据表子集为一个变量-名称 2将包含这一变量的每个数据表从长转换为宽 3添加一个变量数据集,用于保存其中每个表的名称 4使用rbindlist将数据表合并成一个大数据表 以下是我到目前为止掌握的代码片段,但
data_tables<-c("symp", "care", "meds")
#1)subset out variable "name" from each data table
one<-lapply(mget(data_tables),function(x)x[, .("name")])
#2)convert from long to wide format - I'm unsure how to send the previous list "one" from the
last lapply to the next step
dt<-dt[, as.list(table(name))]
#3)add variable "data_set" containing name of each data set in list
one_1 <- Map(function(x, nm) as.data.table(x)[, data_set := nm], mget(one), one)
#4)combine list of data tables together using rbindlist
combined<-rbindlist(one_1, use.names=TRUE, fill=TRUE, idcol=NULL)
我的建议是: 创建一个函数,该函数为您完成以下步骤:
complete_work <- function(dt, nm){
step1 <- dt[, .("name")]
dt <- dt[, as.list(table(name))]
dt[, data_set := nm], step1 , step1)
}
如果您有一个输入和输出的示例,那么可以更容易地帮助您构建您正在寻找的答案
lapply(list(symp, care, meds), complete_work)