提问人:e. erhan 提问时间:8/4/2023 最后编辑:e. erhan 更新时间:8/4/2023 访问量:28
使用 NA 转换和舍入数值变量
Converting and Rounding Numeric Variables with NAs
问:
我正在使用一个名为 的数据集,它是我从 Excel 导入的。在数据集中的变量中,我需要将某些变量转换为数值格式。但是,这些变量确实包含缺失值 (NA)。此外,原始数值的小数点后两位以上,我的目标是将这些数值四舍五入到小数点后两位。这是我所做的:fab_2023
fab_2023 <- fab_2023 %>%
mutate_at(vars(Total_score_2023:MA_Combined_Social_2021), ~ ifelse(is.na(.), NA, as.numeric(.)))
fab_2023 <- fab_2023 %>%
mutate_at(vars(Total_score_2023:MA_Combined_Social_2021), ~ ifelse(is.na(.), NA, round(., 2)))
我基本上想将所有变量从Total_score_2023变量转换为MA_Combined_Social变量到数值变量,并四舍五入到小数点后两位。当我这样做时,似乎它实际上确实以我想要的方式转换了数据,但随后我遇到了以下错误消息:
Error in `mutate()`:
! Problem while computing `Total_score_2021 = (structure(function (..., .x = ..1, .y = ..2, . = ..1) ...`.
Caused by error in `round()`:
! non-numeric argument to mathematical function
Run `rlang::last_error()` to see where the error occurred.
如果我做错了什么,你能告诉我吗?谢谢!
答:
1赞
LMc
8/4/2023
#1
library(dplyr)
fab_2023 |>
mutate(across(Total_score_2023:MA_Combined_Social_2021, ~ round(as.numeric(.), 2)))
评论
ifelse
as.numeric(NA)
NA
as.numeric(c("3", "2.5", NA))
is.na(.), NA, as.numeric(.)