验证码:
library(dplyr)
library(magrittr)
a = c("aa", "bb", "cc", NA, "aa")
b = c("aa", "bb", "cc", "bb", "bb")
c = c(NA, "aa", "aa", NA, "bb")
d = c(1, 1, 2, 2, 3)
df = data.frame(a,b,c,d)
cols <- c("a","b","c")
missing <- function(x) {
replace(x, ifelse(is.na(x), "Missing", ifelse(x == "aa", "Missing",x)))
}
df %<>%
mutate(across(where(is.character), missing))
字符串
我想在一个df中计算多个列,并将NA或任何“aa”值更改为“Missing”。我想创建一个简洁的函数来调用,但我不知道如何使它工作,因为我得到了以下错误:
错误:mutate()
输入..1
的问题。x参数“values”丢失,没有默认i输入..1
是across(where(is.character), missing)
。
期望输出:
a b c d
missing missing missing 1
bb bb missing 1
cc cc missing 2
missing bb missing 2
missing bb bb 3
型
4条答案
按热度按时间cdmah0mi1#
使用
across()
尝试以下解决方案:字符串
输出量:
型
jv2fixgn2#
你可以像这样使用匿名函数
字符串
另一种选择是使用常规函数
型
h7wcgrx33#
您可以使用
na_if()
将"aa"
替换为NA
,并使用replace_na()
将NA
替换为"missing"
。字符串
你也可以从
forcats
使用fct_explicit_na()
。型
cld4siwp4#
Base R
解决方案如下:字符串
数据:
型
输出:
型