gpt4 book ai didi

R从变量名列表创建变量表

转载 作者:行者123 更新时间:2023-12-04 08:08:01 24 4
gpt4 key购买 nike

我目前正在尝试从变量名称列表中创建一个表(我觉得应该相对简单),但我一生都无法弄清楚如何正确地做到这一点。
我有一个名为"file"的数据表,该文件中有一个包含 3 个变量名的列表。我想要做的是为每个变量创建一个表,然后将它们 rbind 在一起。对于进一步的上下文,这几行代码将被处理成一个更大的函数。变量名称列表必须能够容纳用户定义的变量数量。
我尝试了以下方法:

file<-as.data.table(dt)
variable_list<-list("outcome", "type")

for (variable in variable_list){
var_table<-as.data.table(table(file$variable_list))
na_table<-as.data.table(table(is.na(file$variable)))
}
当我运行上述代码时,R 返回 var_table 和 na_table 的空表。我究竟做错了什么?

最佳答案

一个选项是循环遍历 'variable_list , extract the column, apply and绑定(bind) within做.call`

do.call(rbind, lapply(variable_list, function(nm) table(file[[nm]])))
注意:假设 levels的列是相同的
如果 levels不一样,通过将列转换为 factor 使其相同与 levels指定的
lvls <- na.omit(sort(unique(unlist(file[, unlist(variable_list), with = FALSE]))))

do.call(rbind, lapply(variable_list, function(nm)
table(factor(file[[nm]], levels = lvls))))

或者,如果我们有 data.table , 使用 data.table方法
rbindlist(lapply(variable_list, function(nm) file[, .N,by = c(nm)]), fill = TRUE)

关于R从变量名列表创建变量表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66125157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com