识别函数中的变量名称

时间:2017-04-19 07:48:23

标签: r

我的一个脚本有一个重复代码部分,如下所示:

cat(capture.output(describe(semWellCases$di)),
                file="./output/descriptivestats.txt", 
                sep="\n",append=TRUE)

cat(capture.output(describe(semWellCases$dd)),
                file="./output/descriptivestats.txt", 
                sep="\n",append=TRUE)

cat(capture.output(describe(semWellCases$fas)),
                file="./output/descriptivestats.txt", 
                sep="\n",append=TRUE)

本节旨在创建一个文件,并将每个变量的统计信息附加到文件中。我试图使它成为一个功能是部分工作:

descriptiveStats <- function ( vars, filename ) {
  for (i in vars) {
   cat(capture.output(describe(i)),
         file=filename, 
      sep="\n",append=TRUE)
 }
}

我打电话给:

descriptiveStats(semWellCases[c("di","dd", "fas")], "./output/stats.txt")

问题是输出文件没有变量名,它们都列为i,这是我在for循环中使用的名称:

 1  Variables      195  Observations
--------------------------------------------------------------------------------
i 
       n  missing distinct     Info     Mean      Gmd      .05      .10 
     195        0       13    0.982    5.574    2.891      2.0      3.0 
     .25      .50      .75      .90      .95 
     4.0      5.0      7.0      9.0      9.3 

Value          2     3     4     5     6     7     8     9    10    11    12
Frequency     15    32    37    23    24    20    18    16     5     2     1
Proportion 0.077 0.164 0.190 0.118 0.123 0.103 0.092 0.082 0.026 0.010 0.005

Value         14    28
Frequency      1     1
Proportion 0.005 0.005
--------------------------------------------------------------------------------

在一系列中附加几个describe()输出后,就无法识别相应变量的摘要。

  • 如何在每个describe()输出之前打印传递给函数的变量名称?

1 个答案:

答案 0 :(得分:1)

您可以选择循环显示data.frame的名称并在打印describe

的输出之前将其打印出来
descriptiveStats <- function ( vars, filename ) {
    for (i in names(vars)) {
        cat(paste0(i, "\n"), file=filename, append=TRUE)
        cat(capture.output(describe(vars[,i])),
            file=filename, 
            sep="\n",append=TRUE)
    }
}