gpt4 book ai didi

R观星者: Different decimals

转载 作者:行者123 更新时间:2023-12-04 03:17:24 25 4
gpt4 key购买 nike

我在 R 中的 stargazer 输出有问题。

这是我的原始数据框:

Rank  p     LMax   10%   5%  1%   
var1 0.427 24.25 21.8 27.4 31.5
var2 0.228 7.23 11.5 12.2 16.7

观星者创造了什么:

观星者(data_summary,summary=FALSE,digits = 3)

Rank  p      LMax   10%    5%     1%   
var1 0.427 24.250 21.800 27.400 31.500
var2 0.248 7.230 11.500 12.200 16.700

重要的是保留 p 的三位数,但保留其他位数的 2 位数。 digits = 2 不能解决问题,因为 p 只有两位数。

期望的输出:

Rank  p      LMax   10%    5%     1%   
var1 0.427 24.25 21.80 27.40 31.50
var2 0.248 7.23 11.50 12.20 16.70

知道如何解决这个问题吗?

最佳答案

一个 hacky 解决方案是将您的数据框转换为字符向量,每个字符向量都有适当的小数点数。

data_summary <- read.table(text = "
Rank p LMax p10 p5 p1
var1 0.427 24.25 21.8 27.4 31.5
var2 0.228 7.23 11.5 12.2 16.7", header = TRUE, stringsAsFactors = FALSE)

我们编写一个匿名函数,给定一个整数 x(小数点数)和一个数值向量 y,返回一个字符向量:

out <- mapply(function(x, y) sprintf(sprintf("%%.0%if", y), x), 
data_summary[-1],
c(3, 2, 2, 2, 2))
# p LMax p10 p5 p1
# [1,] "0.427" "24.25" "21.80" "27.40" "31.50"
# [2,] "0.228" "7.23" "11.50" "12.20" "16.70"

将值绑定(bind)到行标签:

data_summary_out <- as.data.frame(cbind(data_summary[, 1], out))
data_summary_out <- setNames(data_summary_out, names(data_summary))

stargazer 现在为您提供所需的输出:

library(stargazer)
stargazer(data_summary_out,
type = "text",
summary = FALSE,
digits = NA)
# ====================================
# Rank p LMax p10 p5 p1
# ------------------------------------
# 1 var1 0.427 24.25 21.80 27.40 31.50
# 2 var2 0.228 7.23 11.50 12.20 16.70
# ------------------------------------

关于R观星者: Different decimals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40015431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com