我正在尝试使用table()
为100多个变量在 R 中运行EDA。
当我运行以下代码时,它们正常工作。
var_freq <- table(dataset$count)
var_freq_df <- as.data.frame(var_freq)
var_freq_df$percent <-var_freq_df$Freq/ sum(var_freq_df$Freq)
> var_freq_df
V1 N percent
1: 0 68432 4.487138e-01
2: 1 80979 5.309855e-01
3: 2 2383 1.562551e-02
4: 3 654 4.288328e-03
5: 4 49 3.212967e-04
6: 5 8 5.245661e-05
由于我有100多个变量,我在下面编写了自定义函数。
categ_EDA <- function(dataset,var){
var_freq <- NULL
var_freq <- table(dataset$var)
var_freq_df <- as.data.frame(var_freq)
var_freq_df$percent <-var_freq_df$Freq/ sum(var_freq_df$Freq)
return( var_freq_df)
}
categ_EDA(dataset,count)
返回此结果。
> categ_EDA(dataset,count)
[1] Freq percent
<0 rows> (or 0-length row.names)
我还使用了data.table而不是as.data.frame,它有不同的错误。
最令我困惑的部分是这些代码在函数之外工作正常,但在自定义函数中不起作用。任何建议都非常感谢!