R 如何使用tidydots以备不时之需?
R 如何使用tidydots以备不时之需?,r,rlang,tidyeval,R,Rlang,Tidyeval,dplyr::case_when的文档说明“这些点支持整齐的点功能。特别是,如果您的图案存储在列表中,您可以使用!!!”将其拼接在一起。”但我似乎不知道如何做。关于stackoverflow这个问题的现有问题似乎已经过时了——可能是rlang 0.3.0之前的问题 以下是我尝试过的: myu案例萼片。长萼片。宽花瓣。长花瓣。宽种 #> #>1 5.1 3.5 1.4 0.2刚毛 #>2 4.9 3 1.4 0.2刚毛 #>3
dplyr::case_when
的文档说明“这些点支持整齐的点功能。特别是,如果您的图案存储在列表中,您可以使用!!!”将其拼接在一起。”但我似乎不知道如何做。关于stackoverflow这个问题的现有问题似乎已经过时了——可能是rlang 0.3.0之前的问题
以下是我尝试过的:
myu案例萼片。长萼片。宽花瓣。长花瓣。宽种
#>
#>1 5.1 3.5 1.4 0.2刚毛
#>2 4.9 3 1.4 0.2刚毛
#>3 4.7 3.2 1.3 0.2刚毛
#>4.6 3.1 1.5 0.2刚毛
#>5 3.6 1.4 0.2刚毛
#>6 5.4 3.9 1.7 0.4刚毛
#>7.4.6 3.4 1.4 0.3刚毛
#>8 5 3.4 1.5 0.2刚毛
#>9.4.2.9 1.4 0.2刚毛
#>10 4.9 3.1 1.5 0.1刚毛
#>#…还有140行
dplyr::突变(tiris,
new_label=dplyr::case_when(!!!my_cases)
)
#>eval_tidy中出错(对$lhs,env=default_env):未找到对象“物种”
开发工具::会话信息()
#> ─ 会话信息──────────────────────────────────────────────────────────
#>设定值
#>R版3.5.3版(2019-03-11)
#>马科斯·莫哈韦10.14.3
#>系统x86_64,达尔文15.6.0
#>ui X11
#>语言(英文)
#>核对en_US.UTF-8
#>ctype en_US.UTF-8
#>tz美国/纽约
#>日期2019-03-31
#>
#> ─ 包装──────────────────────────────────────────────────────────────
#>包*版本日期库源
#>资产负债表0.2.1 2019-03-21[1]起重机(R 3.5.3)
#>后端口1.1.3 2018-12-14[1]起重机(R 3.5.0)
#>callr 3.2.0 2019-03-15[1]起重机(R 3.5.1)
#>cli 1.1.0 2019-03-19[1]起重机(R 3.5.1)
#>蜡笔1.3.4 2017-09-16[1]克兰(R3.5.0)
#>描述1.2.0 2018-05-01[1]起重机(R 3.5.0)
#>devtools 2.0.1 2018-10-26[1]起重机(R 3.5.3)
#>摘要0.6.18 2018-10-10[1]克兰(R 3.5.0)
#>dplyr 0.8.0.1 2019-02-15[1]起重机(R 3.5.2)
#>评估0.13 2019-02-12[1]起重机(R 3.5.2)
#>fansi 0.4.0 2018-10-05[1]CRAN(R 3.5.0)
#>fs 1.2.7 2019-03-19[1]起重机(R 3.5.3)
#>胶水1.3.1 2019-03-12[1]起重机(R 3.5.1)
#>高0.8 2019-03-20[1]克兰(R 3.5.3)
#>htmltools 0.3.6 2017-04-28[1]CRAN(R 3.5.0)
#>克尼特1.22 2019-03-08[1]克兰(R 3.5.2)
#>magrittr 1.5 2014-11-22[1]CRAN(R 3.5.0)
#>备忘录1.1.0 2017-04-21[1]克兰(R 3.5.0)
#>支柱1.3.1 2018-12-15[1]起重机(R 3.5.0)
#>pkgbuild 1.0.3 2019-03-20[1]起重机(R 3.5.3)
#>pkgconfig 2.0.2 2018-08-16[1]起重机(R 3.5.0)
#>pkgload 1.0.2 2018-10-29[1]CRAN(R 3.5.0)
#>prettyunits 1.0.2 2015-07-13[1]CRAN(R 3.5.0)
#>processx 3.3.0 2019-03-10[1]起重机(R 3.5.2)
#>ps 1.3.0 2018-12-21[1]起重机(R 3.5.0)
#>purrr 0.3.2 2019-03-15[1]起重机(R 3.5.1)
#>R6 2.4.0 2019-02-14[1]起重机(R3.5.2)
#>Rcpp 1.0.1 2019-03-17[1]起重机(R 3.5.1)
#>遥控器2.0.2 2018-10-30[1]起重机(R 3.5.0)
#>rlang 0.3.3 2019-03-29[1]起重机(R 3.5.3)
#>R标记1.12 2019-03-14[1]起重机(R 3.5.1)
#>rprojroot 1.3-2 2018-01-03[1]起重机(R 3.5.0)
#>sessioninfo 1.1.1 2018-11-05[1]CRAN(R 3.5.0)
#>stringi 1.4.3 2019-03-12[1]起重机(R 3.5.1)
#>纵梁1.4.0 2019-02-10[1]起重机(R 3.5.2)
#>测试2.0.1 2018-10-13[1]起重机(R 3.5.0)
#>tibble 2.1.1 2019-03-16[1]起重机(R 3.5.1)
#>tidyselect 0.2.5 2018-10-11[1]克兰(R 3.5.0)
#>使用本1.4.0 2018-08-14[1]起重机(R 3.5.0)
#>utf8 1.1.4 2018-05-24[1]起重机(R 3.5.0)
#>带R 2.1.2 2018-03-15[1]起重机(R 3.5.0)
#>xfun 0.5 2019-02-20[1]起重机(R 3.5.2)
#>yaml 2.2.0 2018-07-25[1]克兰(R 3.5.0)
#>
#>[1]/Library/Frameworks/R.framework/Versions/3.5/Resources/Library
一个选项是创建一个quosure(quos
),然后使用代码>
my_cases <- quos(Species == "setosa" ~ "S",
TRUE ~ "other")
out <- tiris %>%
mutate(new_lable = case_when(!!! my_cases))
head(out, 3)
# A tibble: 3 x 6
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species new_lable
# <dbl> <dbl> <dbl> <dbl> <fct> <chr>
#1 5.1 3.5 1.4 0.2 setosa S
#2 4.9 3 1.4 0.2 setosa S
#3 4.7 3.2 1.3 0.2 setosa S
tail(out, 3)
# A tibble: 3 x 6
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species new_lable
# <dbl> <dbl> <dbl> <dbl> <fct> <chr>
#1 6.5 3 5.2 2 virginica other
#2 6.2 3.4 5.4 2.3 virginica other
#3 5.9 3 5.1 1.8 virginica other
my_最理想的情况是,您第一次尝试的语法应该可以工作,但由于模糊的技术原因,很难实现。希望我们将来能解决这个问题。