我的一个脚本有一个重复代码部分,如下所示:
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()
输出之前打印传递给函数的变量名称?答案 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)
}
}