使用round()函数处理数据框列小数位数出错,无法更新数据框
解决round()函数参数错误及数据框列更新问题
错误原因
你用%>%管道时,左边的data_frame$column1会自动作为round()的第一个参数传入,而你又手动写了round(data_frame$column1,2),相当于给round()传了3个参数(管道传的列、你写的列、2),这超出了round()最多2个参数的要求,所以触发报错。
正确写法
1. 直接赋值(最简单的方式)
你单独运行round(data_frame$column1,2)能得到正确结果,只需要把结果赋值回原列即可更新:
data_frame$column1 <- round(data_frame$column1, 2)
2. 用管道的正确写法
如果非要用管道,只需要给round()传第二个参数2,管道会自动把左边的列作为第一个参数传入:
data_frame$column1 <- data_frame$column1 %>% round(2)
3. dplyr风格的整数据框操作
如果习惯用tidyverse的写法,可以直接修改整个数据框中的目标列:
library(dplyr) data_frame <- data_frame %>% mutate(column1 = round(column1, 2))
内容的提问来源于stack exchange,提问作者RLearner
相关产品推荐
相关产品推荐

