舍入所有数字列,但表中只有一个

标签 r dplyr

我已经从 t 检验和方差分析创建了许多输出表,并且我想对表的所有数字列进行舍入,除了包含 p 值 (p.value) 的列。

当前代码:

library(dplyr)
library(broom)

a <- rnorm(100, 0.75, 0.1)

t.test <- t.test(a, mu = 0.5, alternative = "greater") %>%
          broom::tidy() %>%
          mutate_if(is.numeric, round, 2)

问题是这也将我的 p 值四舍五入,然后显示为 0。我已经有一个用于报告我的 markdown 文件的 p 值的函数,所以我想知道如何保留 p 值(p .value) 未更改但将所有其他数字列四舍五入为 2 位?

谢谢

最佳答案

如果您真的想要 p.value 之外的所有数字列,只需确保您的 p.value 列不通过在舍入前将其强制为字符,然后在舍入后返回数字来进行舍入。

library(dplyr)
library(broom)

a <- rnorm(100, 0.75, 0.1)

t.test <- t.test(a, mu = 0.5, alternative = "greater") %>%
  broom::tidy() %>%
  mutate(p.value = as.character(p.value)) %>%
  mutate_if(is.numeric, round, 2) %>%
  mutate(p.value = as.numeric(p.value))
t.test
# A tibble: 1 x 8
  estimate statistic  p.value parameter conf.low conf.high method            alternative
     <dbl>     <dbl>    <dbl>     <dbl>    <dbl>     <dbl> <chr>             <chr>      
1     0.76      28.3 1.52e-49        99     0.74       Inf One Sample t-test greater    

如果您只想对某些列进行舍入,那么您可能最好使用 mutate_at 作为@user5249203 的推广方式。

关于舍入所有数字列,但表中只有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745572/

相关文章:

r - 填写大纲

r - 在自定义 R 函数中预分配内存以提高性能(使用 dplyr)

r - dplyr - 分组并选择 TOP x %

r - dplyr `across()` 分组时的函数和数据帧长度

R,将字符串拆分为字符对

r - 使用 geom_raster() 或 geom_tile 或 geom_rect() 绘制多个图层

r - 如何将向量分组到向量列表中?

r - 如何在 R 中查找多个列中的最早日期(NAs 问题)

r - 如何从数据框中为 case_when 构造参数?

regex - R获取子字符串和正则表达式?