考虑这个例子:
library(dplyr)
df <- data.frame(a=1:5,b=6:10)
> df
a b
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
colname <- "a"
df |> filter(!!as.symbol(colname)<3)
a b
1 1 6
2 2 7
df |> filter(!!colname<3)
[1] a b
<0 rows> (or 0-length row.names)
应用
!!
到字符串而不是符号,会实现什么效果?为什么它返回一个空数据框而不是报错?
colname <- 2
时,dplyr 如何知道从select(!!colname)
返回第二列(数值2),而基本的 R 在选择df[!!colname]
时返回所有列(逻辑TRUE
,将!!
视为双重否定)。 - I_O|> invisible()
的目的是什么? - Chris|> invisible()
是用来做什么的? - undefined