Rob*_*hrs 1 r function dataframe dplyr mutate
我知道这更像是一个普遍的基本问题。但对我来说仍然有点困惑。“问题”是~和.in R。它们只是随处可见,我不知道它们在每种情况下的确切含义。例如,有此代码,我想将每个 -1 或 -9 编码为NA:
df_clean = dplyr::mutate_all(df, ~ifelse(. %in% c(-1, -9), NA, .))
Run Code Online (Sandbox Code Playgroud)
所以df在这种情况下是一个data.frame有几列的。其中一些包含许多NAs. 但是为什么~在前面ifelse呢?第一个.有助于迭代每一行?
对困惑感到抱歉。但也许有人可以用一些简单的词来解释这一点;)
在.这里指的值在列而~是一个式样式语法来表示的功能。它是一种编码风格。
这也可以使用匿名函数表示,如基 R
dplyr::mutate_all(df, function(x) ifelse(x %in% c(-1, -9), NA, x))
Run Code Online (Sandbox Code Playgroud)
这与lapply在基数 R 中使用相同:
lapply(df, function(x) ifelse(x %in% c(-1, -9), NA, x))
Run Code Online (Sandbox Code Playgroud)