使用 NA 转换和舍入数字变量

问题描述 投票:0回答:1

我正在使用一个名为

fab_2023
的数据集,该数据集是我从 Excel 导入的。在数据集中的变量中,我需要将某些变量转换为数字格式。但是,这些变量确实包含缺失值 (NA)。此外,原始数值的小数位数超过两位,我的目标是将这些数值四舍五入到小数点后两位。这就是我所做的:

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.

如果我做错了什么,你能告诉我吗?谢谢!

r variables dplyr data-wrangling mutate
1个回答
0
投票
library(dplyr)

fab_2023 |>
  mutate(across(Total_score_2023:MA_Combined_Social_2021, ~ round(as.numeric(.), 2))) 
© www.soinside.com 2019 - 2024. All rights reserved.