RStudio中Stargazer生成描述统计表格报错:Error in if (is.na(s)) { : ...
问题排查与解决办法
错误根源
psych::describe()返回的数据框包含变量名、均值、标准差等多维度统计信息,直接转成矩阵传入stargazer()时,函数无法识别这种非标准输入结构,从而触发条件判断的长度错误。
直接解决方法
不需要提前用psych::describe()处理数据,直接把原始变量列传入stargazer(),让函数自行计算描述统计量:
# 直接基于原始数据生成Word格式描述统计表格 stargazer(data_corruption[c("innovation_firm", "corruption", "ownership_gov", "competition", "gender_tm", "size_firm", "age_firm", "RandD", "export", "corruption_constraint")], type = "html", title="Descriptive statistics", digits = 2, out="Descriptive_statistics.doc")
自定义统计量的处理方案
如果需要psych::describe()提供的偏度、峰度等额外统计指标,先整理结果格式再传入stargazer():
# 获取psych包的描述统计结果 desc_result <- psych::describe(data_corruption[c("innovation_firm", "corruption", "ownership_gov", "competition", "gender_tm", "size_firm", "age_firm", "RandD", "export", "corruption_constraint")]) # 提取需要的统计列,转换为矩阵并设置行名 custom_desc_matrix <- as.matrix(desc_result[, c("mean", "sd", "median", "min", "max", "skew", "kurtosis")]) rownames(custom_desc_matrix) <- desc_result$vars # 用整理好的矩阵生成表格,关闭自动统计计算 stargazer(custom_desc_matrix, type = "html", title="Descriptive statistics", digits = 2, out="Descriptive_statistics.doc", summary = FALSE)
内容的提问来源于stack exchange,提问作者Carla
相关产品推荐
相关产品推荐

