【发布时间】:2020-06-23 14:39:05
【问题描述】:
我正在我的包中创建一个通用函数。目标是找到百分比列,然后在它们是 character 列时对它们使用 parse_number。我还没有找到使用mutate_at 和ifelse 的解决方案。我在下面粘贴了一个代表。
library(tidyverse)
df <- tibble::tribble(
~name, ~pass_percent, ~attendance_percent, ~grade,
"Jon", "90%", 0.85, "B",
"Jim", "100%", 1, "A"
)
percent_names <- df %>% select(ends_with("percent"))%>% names()
# Error due to attendance_percent already being in numeric value
if (percent_names %>% length() > 0) {
df <-
df %>%
dplyr::mutate_at(percent_names, readr::parse_number)
}
#> Error in parse_vector(x, col_number(), na = na, locale = locale, trim_ws = trim_ws): is.character(x) is not TRUE
【问题讨论】: