我知道那里有大量资源。我很高兴收到一些好的指示,因为对于初学者而言,要真正知道什么是好的资源是非常困难的。我的问题是,以下代码中.
和~
的实际含义是什么?
我知道他们将所有-1
和99
都编码为NA。但是,为什么这种复杂的外观语法呢?
mutate_all(df, list(~ifelse(. %in% c(-1, 99), NA, .)
因此,data.frame
df
有几列。在所有的NA中,编码为-1或99。
我认为dplyr
也具有na_if
函数。而且在这里使用起来更容易吗?
答案 0 :(得分:1)
他们正在使用mutate_all
函数来更改/更改您将拥有df
的基数R中表df[] <- lapply(df, function(x) ifelse(x %in% c(-1, 99), NA, x))
中的所有列
na_if
可以使用-请看一下:https://dplyr.tidyverse.org/reference/na_if.html
答案 1 :(得分:1)
.
指的是与@sindri_baldur和@Data Science共享的,与x
的基本R版本中的lapply
相等的当前列值。
lapply(df, function(x) ifelse(x %in% c(-1, 99), NA, x))
~
,而是一种quosure样式的lambda表示法,主要是样式偏好。您可以跳过该操作,并使用匿名功能也可以使用与lapply
相同的语法。
dplyr::mutate_all(df, function(x) ifelse(x %in% c(-1, 99), NA, x))
您也可以放开list
并像使用它一样。
dplyr::mutate_all(df, ~ifelse(. %in% c(-1, 99), NA, .))