在dplyr 0.7.4和R 3.4.1中使用as_tibble时,我得到以下输出
mtcars %>% aggregate(disp ~ cyl, data=., mean) %>% as_tibble()
Run Code Online (Sandbox Code Playgroud)
哪个输出
# A tibble: 3 x 2
cyl disp
<dbl> <dbl>
1 4.00 105
2 6.00 183
3 8.00 353
Run Code Online (Sandbox Code Playgroud)
而
mtcars %>% aggregate(disp ~ cyl, data=., mean)
Run Code Online (Sandbox Code Playgroud)
输出
cyl disp
1 4 105.1364
2 6 183.3143
3 8 353.1000
Run Code Online (Sandbox Code Playgroud)
以下并不奇怪
mtcars %>% group_by(cyl) %>% summarise(disp=mean(disp))
Run Code Online (Sandbox Code Playgroud)
又给了
# A tibble: 3 x 2
cyl disp
<dbl> <dbl>
1 4.00 105
2 6.00 183
3 8.00 353
Run Code Online (Sandbox Code Playgroud)
为什么这种四舍五入发生了,我该如何避免呢?
abi*_*hat 14
这不是一个舍入,它只是{tibble}以一种漂亮的方式显示数据的一种方式:
> mtcars %>%
+ aggregate(disp ~ cyl, data=., mean) %>%
+ as_tibble() %>%
+ pull(disp)
[1] 105.1364 183.3143 353.1000
Run Code Online (Sandbox Code Playgroud)
如果要查看更多数字,则必须打印data.frame:
> mtcars %>%
+ aggregate(disp ~ cyl, data=., mean) %>%
+ as_tibble() %>%
+ as.data.frame()
cyl disp
1 4 105.1364
2 6 183.3143
3 8 353.1000
Run Code Online (Sandbox Code Playgroud)
(是的,最后两行没用)