我有一个数据(df_1
(:
df_1 <- structure(list(var_1 = c(99.4726192392409, 25.9155194833875),
var_2 = c(99.9599985964596, 20.3848657943308), var_3 = c(93.1612774543464,
31.651863809675), var_4 = c(54.2802151478827, 81.9601702317595
), var_5 = c(88.1385736726224, 94.7823309898376), var_6 = c(83.7288120947778,
72.2155329957604), groups = structure(c(1L, 1L), .Label = c("1",
"2", "3"), class = "factor")), row.names = c(1L, 10L), class = "data.frame")
我试过了:
library(dplyr)
df_1 %>%
select_at(.vars = 'var_1')
var_1
1 99.47262
10 25.91552
还行。但:
df_1 %>%
select(across(.cols = 'var_1'))
错误:
across()
只能在 dplyr 谓词中使用。
如何使用select
和across
调整最后一个功能?
从选择或交叉的github
页面中,没有select
与across
一起使用的用例。 根据?across
文献
across(( 可以轻松地将相同的转换应用于多个列,允许您在 summarise(( 和 mutate(( 中使用 select(( 语义。 across(( 取代了 summarise_at((、summarise_if(( 和 summarise_all(( 等"作用域变体"系列。有关更多详细信息,请参阅小插图("colwise"(。
没有提到与select
一起使用
在当前版本中,select
可以采用不带引号和带引号的变量
library(dplyr)
df_1 %>%
select('var_1')
# var_1
#1 99.47262
#10 25.91552
df_1 %>%
select('var_1', 'var_2')
# var_1 var_2
#1 99.47262 99.96000
#10 25.91552 20.38487
df_1 %>%
select(var_1, var_2)
或者利用select_helpers
starts_with/ends_with/matches/contains
df1_1 %>%
select(starts_with('var'))
# var_1 var_2
#1 99.47262 99.96000
#10 25.91552 20.38487