[英]R: why does stargazer return incorrect values for min and max with this dataframe?
我今天正在使用 stargazer 制作一些基本的汇总表,并注意到一些奇怪的行为:
library(stargazer)
my_df <- data.frame(speed = c(3.00,3.20,3.00,3.20,3.10,2.90),
age = c(22,24,24,28,19,25))
stargazer(my_df, type="text",
summary.stat = c("min", "mean", "max"),
digits = 2)
Output 是:
=======================
Statistic Min Mean Max
-----------------------
speed 3 3.07 3
age 19 23.67 28
-----------------------
显然min
应该是 2.90, max
应该是 3.20,因为我已经指定了digits=2
...我会失去我的弹珠吗? 如果重要的话,我正在使用 stargazer 5.2.2 和 R 3.6.3。
这看起来可疑地像一个未记录的行为(又名错误)。
我可能错了,但似乎 function 正在检查每个变量的第一个值以确定如何呈现最小/最大结果,如果发现任何看起来像 integer 的东西,则忽略digits
参数。 例如,将第一个值从 3.00 更改为 3.10,您将获得预期的 output。
my_df <- data.frame(speed = c(3.10,3.20,3.00,3.20,3.10,2.90),
age = c(22,24,24,28,19,25))
stargazer(my_df, type="text",
summary.stat = c("min", "mean", "max"),
digits = 2)
=========================
Statistic Min Mean Max
-------------------------
speed 2.90 3.08 3.20
age 19 23.67 28
-------------------------
我用 mtcars 数据集尝试了这个并得到了相同的行为。
stargazer(mtcars[,c("mpg","drat","wt","qsec")], type='text', digits=2)
=========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
---------------------------------------------------------
mpg 32 20.09 6.03 10 15.4 22.8 34
drat 32 3.60 0.53 2.76 3.08 3.92 4.93
wt 32 3.22 0.98 1.51 2.58 3.61 5.42
qsec 32 17.85 1.79 14.50 16.89 18.90 22.90
---------------------------------------------------------
head(mtcars[,c("hp","mpg","drat","wt","qsec")])
# hp mpg drat wt qsec
# Mazda RX4 110 21.0 3.90 2.620 16.46
# Mazda RX4 Wag 110 21.0 3.90 2.875 17.02
# Datsun 710 93 22.8 3.85 2.320 18.61
# Hornet 4 Drive 110 21.4 3.08 3.215 19.44
# Hornet Sportabout 175 18.7 3.15 3.440 17.02
# Valiant 105 18.1 2.76 3.460 20.22
所以,我不认为你正在失去你的弹珠。 但是您应该将此报告给 package 作者,看看他(Marek Hlavac)怎么说。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.