gpt4 book ai didi

r - R上的三个感叹号

转载 作者:行者123 更新时间:2023-12-03 20:25:55 28 4
gpt4 key购买 nike

我一直在读一本关于特征工程的书,一段代码有一个我不明白的三重感叹号:

vc_pred <- 
recipe(Stroke ~ ., data = stroke_train %>% dplyr::select(Stroke, !!!VC_preds)) %>%
step_YeoJohnson(all_predictors()) %>%
prep(stroke_train %>% dplyr::select(Stroke, !!!VC_preds)) %>%
juice() %>%
gather(Predictor, value, -Stroke)

VC_preds 是一个包含连续预测变量名称的向量。我理解除 !!! 之外的所有代码标记。一 !应该是否定,但它是什么意思 !!! ?

提供的任何帮助将不胜感激。谢谢你。

问候,

亚历克西斯

最佳答案

!!!通常用于评估表达式列表。

library(dplyr)
library(rlang)

VC_preds <- c('mpg', 'cyl')
mtcars %>% select(!!!VC_preds) %>% head

# mpg Cyl
#Mazda RX4 21.0 6
#Mazda RX4 Wag 21.0 6
#Datsun 710 22.8 4
#Hornet 4 Drive 21.4 6
#Hornet Sportabout 18.7 8
#Valiant 18.1 6

VC_preds在您的示例中是一个向量, !!也应该工作。
mtcars %>% select(!!VC_preds) %>% head
?"!!!"的帮助页面给出了一个更好的例子来理解差异。
vars <- syms(c("height", "mass"))
vars
#[[1]]
#height

#[[2]]
#mass

starwars %>% select(!!!vars)
# A tibble: 87 x 2
# height mass
# <int> <dbl>
# 1 172 77
# 2 167 75
# 3 96 32
# 4 202 136
# 5 150 49
# 6 178 120
# 7 165 75
# 8 97 32
# 9 183 84
#10 182 77
# … with 77 more rows

关于r - R上的三个感叹号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61180201/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com