了解 R 中 across 中的警告信息
Understand the warning message in across in R
这道题是为了加深对 R 函数 Across & Which 的理解。我 运行 此代码并收到消息。我想了解
a) 好的和坏的练习有什么区别
b) where 函数在一般情况下和在此用例中如何准确工作
library(tidyverse)
iris %>% mutate(across(is.character,as.factor)) %>% str()
Warning message:
Problem with `mutate()` input `..1`.
i Predicate functions must be wrapped in `where()`.
# Bad
data %>% select(is.character)
# Good
data %>% select(where(is.character))
i Please update your code.
使用where
和不使用区别不大。它只是显示一个建议更好语法的警告。基本上 where
采用谓词函数并将其应用于数据集的每个变量(列)。然后它 returns 函数 returns TRUE
的每个变量。以下示例摘自 where
:
的文档
iris %>% select(where(is.numeric))
# or an anonymous function
iris %>% select(where(function(x) is.numeric(x)))
# or a purrr style formula as a shortcut for creating a function on the spot
iris %>% select(where(~ is.numeric(.x)))
或者你也可以有两个条件使用 shorthand &&
:
# The following code selects are numeric variables whose means are greater thatn 3.5
iris %>% select(where(~ is.numeric(.x) && mean(.x) > 3.5))
您可以将 select(where(is.character))
用于 across
函数的 .cols
参数,然后在所选列上应用 .fns
参数中的函数。
有关详细信息,您始终可以参考文档,这些文档是了解这些材料的更多信息的最佳来源。
这道题是为了加深对 R 函数 Across & Which 的理解。我 运行 此代码并收到消息。我想了解
a) 好的和坏的练习有什么区别
b) where 函数在一般情况下和在此用例中如何准确工作
library(tidyverse)
iris %>% mutate(across(is.character,as.factor)) %>% str()
Warning message:
Problem with `mutate()` input `..1`.
i Predicate functions must be wrapped in `where()`.
# Bad
data %>% select(is.character)
# Good
data %>% select(where(is.character))
i Please update your code.
使用where
和不使用区别不大。它只是显示一个建议更好语法的警告。基本上 where
采用谓词函数并将其应用于数据集的每个变量(列)。然后它 returns 函数 returns TRUE
的每个变量。以下示例摘自 where
:
iris %>% select(where(is.numeric))
# or an anonymous function
iris %>% select(where(function(x) is.numeric(x)))
# or a purrr style formula as a shortcut for creating a function on the spot
iris %>% select(where(~ is.numeric(.x)))
或者你也可以有两个条件使用 shorthand &&
:
# The following code selects are numeric variables whose means are greater thatn 3.5
iris %>% select(where(~ is.numeric(.x) && mean(.x) > 3.5))
您可以将 select(where(is.character))
用于 across
函数的 .cols
参数,然后在所选列上应用 .fns
参数中的函数。
有关详细信息,您始终可以参考文档,这些文档是了解这些材料的更多信息的最佳来源。