强制r在变异后不要舍入结果

  • 本文关键字:舍入 结果 变异 强制 r
  • 更新时间 :
  • 英文 :


我有一组以ppp_开头的变量,对应于数据帧的id列。我想将从X1X5的每个列除以相应的变量ppp_xxx

ppp_TZA = 803.8115234375
ppp_ZMB = 0.539304196834564
ppp_SGP = 0.879599809646606
ppp_TUR = 1.162452
> set.seed(10000)
> dd <- data.frame(id=c("TZA", "ZMB", "SGP", "TUR"), matrix(runif(5*4)*1000, nrow=4))
> dd
id        X1       X2       X3       X4       X5
1 TZA 321.68642 452.6506 106.8596 859.7612 428.8721
2 ZMB  94.38782 386.7600 837.7849 728.1341 243.5673
3 SGP 468.95386 550.1910 488.5095 921.8389 611.7136
4 TUR 990.72595 838.9120 494.1026 580.5896 262.3972
> dd %>% rowwise() %>% mutate(across(.cols=(2:4), .fns = ~.x/get(paste0("ppp_",id))))
# A tibble: 4 x 6
# Rowwise: 
id         X1      X2       X3    X4    X5
<chr>   <dbl>   <dbl>    <dbl> <dbl> <dbl>
1 TZA     0.400   0.563    0.133  860.  429.
2 ZMB   175.    717.    1553.     728.  244.
3 SGP   533.    626.     555.     922.  612.
4 TUR   852.    722.     425.     581.  262.

然而,结果是在没有我设置舍入的情况下自动舍入数字。我试过options(digits=10),但没有用。

您可以通过更改tibble(即options(pillar.sigfig) = 7(的选项来显示更多数字。值得注意的是,数字实际上并没有丢失,只是没有显示在帧中,即如果您丢失了:

x <- dd %>% rowwise() %>% mutate(across(.cols=(2:4), .fns = ~.x/get(paste0("ppp_",id))))
x[1, 2] %>% as.numeric()

你会看到完整的值,并确认它们在那里。

最新更新