微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有 R 函数来导出描述性统计数据表?

如何解决是否有 R 函数来导出描述性统计数据表?

我正在使用“psych::describe()”函数获取数据集的描述性统计数据。有什么方法可以轻松地将“describe()”函数的列表输出导出到 .csv 或 .xlsx 文件中?

解决方法

正如@kota-mori 在他们的评论中所说,psych::describe() 返回一个数据帧;如果您有 > 1 个条件,则每个结果都会得到一个数据框(数据框列表)。有很多方法可以将数据帧列表保存到 csv。

许多 R 包包含示例数据集,以展示如何应用这些函数。在 psych 包中有一个名为“sat.act”的数据集,它在你加载 psych 包时被加载。以下是保存数据帧列表的两个潜在选项,使用“sat.act”示例数据集进行说明:

如果您想将所有条件(在本例中,性别 = 男性,性别 = 女性)保存在同一个 csv 中:

library(psych)
descriptives <- psych::describe(sat.act ~ gender)

for (i in seq_along(descriptives)){
  write.table(x = descriptives[[i]],file = "descriptive_stats.csv",append = TRUE,quote = FALSE,row.names = TRUE,sep = ",")
}

# cat descriptive_stats.csv
#> vars,n,mean,sd,median,trimmed,mad,min,max,range,skew,kurtosis,se
#> gender,1,247,NA,0
#> education,2,2.99595141700405,1.53680583036105,3,3.11557788944724,1.4826,5,-0.542040445947728,-0.598218802731523,0.0977846133511076
#> age,25.8623481781377,9.74039444245146,22,24.2261306532663,5.9304,14,58,44,1.42771911607712,1.43475747661707,0.619766456910581
#> ACT,4,28.7854251012146,5.06367083434087,30,29.2311557788945,4.4478,36,33,-1.05720679401665,1.88774472017708,0.322193659661594
#> SATV,615.113360323887,114.157372939228,630,622.065326633166,118.608,200,800,600,-0.629705971572944,0.130090314174377,7.26365969825739
#> SATQ,6,245,635.873469387755,116.023299623554,660,645.527918781726,94.8864,300,500,-0.721886092259225,-0.122398533459193,7.4124567123455
#> vars,453,3.2560706401766,1.35370338130495,3.40220385674931,-0.73674297389065,0.272496806385921,0.0636025331065037
#> age,25.4481236203091,9.37186890546087,23.702479338843,13,65,52,1.76575561839618,3.02915218063692,0.440328812472037
#> ACT,28.4172185430464,4.6880911297746,29,28.6280991735537,15,21,-0.392114496350354,-0.415823105247165,0.220265735762853
#> SATV,610.664459161148,112.308174686043,620,617.914600550964,103.782,-0.651456501317982,0.423176886583286,5.27669835005824
#> SATQ,442,595.995475113122,113.071405919542,602.21186440678,133.434,-0.577173247353135,0.128702039769318,5.37825831717794

或者,如果您希望将它们保存在单独的 csv 中,

library(psych)
descriptives <- psych::describe(sat.act ~ gender)

# write a "save" function
save_individually <- function(x,df) {
  write.table(df[[x]],file = paste("descriptives",x,"csv",sep = "."),",append = FALSE,quote = FALSE)
}

# apply the function to each element of the list
purrr::map(names(descriptives),save_individually,descriptives)

# cat descriptives.1.csv
#> vars,7.4124567123455

# cat descriptives.2.csv
#> vars,5.37825831717794

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。