我想创建一个函数来为数据集中的所有分类变量(比如v1,v2,v3,v4 ....)创建表输出 - > ev_table,使用table()函数
table = data.frame(table( ev_table$v1, ev_table$target_var))
避免一次又一次地为每个变量重复相同的代码......
尝试粘贴变量名称会导致错误,因为引号随变量的名称/字符值一起被带载
欢迎任何帮助。
答案 0 :(得分:1)
从您的代码中,您似乎想要对每个分类变量(“V1”,“V2”等)和数据集中的常见“target_var”应用table
函数(“ev_table” )。在这里,我正在创建一个包含多个分类变量以及“target_var”的数据集。如果数据集还包含其他列,则需要对分类列进行子集化。下面的代码获取除'target_var'(setdiff(...)
)之外的所有变量的索引,循环遍历这些列(sapply(..)
),获取这些列之间的table
和“target_var”。
indx <- setdiff(colnames(ev_table), 'target_var')
sapply(ev_table[indx], function(x) table(x, ev_table[,'target_var']))
或者
mapply(`table`, ev_table[indx], list(ev_table[,'target_var']))
set.seed(24)
ev_table <- as.data.frame(matrix(sample(LETTERS[1:5], 4*20,
replace=TRUE), ncol=4))
set.seed(29)
ev_table$target_var <- sample(LETTERS[1:6],20, replace=TRUE)