【发布时间】:2021-10-18 21:50:01
【问题描述】:
我想用purrr 循环一个变量名向量,然后用dplyr 使用函数内部的变量,如下代码:
library(dplyr)
library(purrr)
#creating index
index<-c('Sepal.Length', 'Sepal.Width')
#mapping over index with lambda function
map(index, ~iris %>% filter (.x > mean(.x)))
我期待看到两个 data.frames 的列表,如
list(Sepal.Length = iris %>% filter (Sepal.Length > mean(Sepal.Length)),
Sepal.Width = iris %>% filter (Sepal.Width > mean(Sepal.Width)))
有没有办法在 lambda 函数的 data.frames 中使用 .x 变量作为列名?
我认为这可能与数据屏蔽和非标准评估有关,我怀疑rlang 在这里可能会有所帮助,但我对这个主题并不熟悉。
谢谢
【问题讨论】:
-
非常有趣的 GuedesBF。您能否详细说明在何种情况下我们可以使用此程序。背后的想法是什么。我真的很想知道??谢谢!
-
嗨,@TarJae,谢谢。我有一个包含 300 多列的数据集,包括分布在多列上的
dummified分组变量,以及其他几个data变量。我想为dummy_x==1、dummy_y==1定义的每个组添加summarise(across(data_variables, ~something),因此c("dummy_1", "dummy2"...)的向量可以帮助预先确定变量。该问题旨在像 akrun 的第一个答案那样理解程序,这可以使事情变得更容易。 -
实际的过程有点复杂,但我使用了一个最小的reprex来准确的
vector of characters as variable names问题
标签: r dplyr purrr rlang non-standard-evaluation