我正试图在数据集中添加另一个变量的情况下,在我的数据中创建一个摘要列是"future 证明".为此,我try 使用tidy—select语言,但未能做到这一点.最少的例子是:

variables = c("v1", "v2")
tst = tribble(
  ~ID, ~time, ~v1, ~v2,
  "1a", 1,  T,  F,
  "1b", 1,  F,  T,
  "1c", 1,  F,  F,
  "1a", 2,  T,  F,
  "1b", 2,  T,  T,
  "1c", 2,  F,  F
)

tst %>%
  group_by(ID, time) %>%
  mutate(any_v = any(v1,v2)) # works

tst %>%
  group_by(ID, time) %>%
  mutate(any_v = any(all_of(variables))) # this doesnt work!

我试图实现的是一种情况,其中变量"v3"可以添加到tribble和变量向量,而mutate调用可以保持原样.任何帮助都是感激的!

我已经试过了大部分的整洁 Select 语言,但我不是这里的专家

推荐答案

pick()把柱子拔出来

tst %>%
  group_by(ID, time) %>%
  mutate(any_v = any(pick(all_of(variables)))) 
#   ID     time v1    v2    any_v
#   <chr> <dbl> <lgl> <lgl> <lgl>
# 1 1a        1 TRUE  FALSE TRUE 
# 2 1b        1 FALSE TRUE  TRUE 
# 3 1c        1 FALSE FALSE FALSE
# 4 1a        2 TRUE  FALSE TRUE 
# 5 1b        2 TRUE  TRUE  TRUE 
# 6 1c        2 FALSE FALSE FALSE

如果将所有TRUE值加v3,则会得到相同的答案

tst %>%
  mutate(v3=TRUE) %>% 
  group_by(ID, time) %>%
  mutate(any_v = any(pick(all_of(variables))))
#   ID     time v1    v2    v3    any_v
#   <chr> <dbl> <lgl> <lgl> <lgl> <lgl>
# 1 1a        1 TRUE  FALSE TRUE  TRUE 
# 2 1b        1 FALSE TRUE  TRUE  TRUE 
# 3 1c        1 FALSE FALSE TRUE  FALSE
# 4 1a        2 TRUE  FALSE TRUE  TRUE 
# 5 1b        2 TRUE  TRUE  TRUE  TRUE 
# 6 1c        2 FALSE FALSE TRUE  FALSE

或者,如果您只是想使用任何以"v"开头的列,请使用

tst %>%
  mutate(v3=TRUE) %>% 
  group_by(ID, time) %>%
  mutate(any_v = any(pick(starts_with("v"))))
#   ID     time v1    v2    v3    any_v
#   <chr> <dbl> <lgl> <lgl> <lgl> <lgl>
# 1 1a        1 TRUE  FALSE TRUE  TRUE 
# 2 1b        1 FALSE TRUE  TRUE  TRUE 
# 3 1c        1 FALSE FALSE TRUE  TRUE 
# 4 1a        2 TRUE  FALSE TRUE  TRUE 
# 5 1b        2 TRUE  TRUE  TRUE  TRUE 
# 6 1c        2 FALSE FALSE TRUE  TRUE 

R相关问答推荐

geom_raster不适用于x比例中超过2,15的值

使用sensemakr和fixest feols模型(R)

在位置周围设定一个半径并识别该半径内的其他位置

咕噜中的元素列表:map

如何 bootstrap glm回归、估计95%置信区间并绘制它?

编辑文件后编辑RhandsonTable

如何在R中合并和合并多个rabrame?

当两个图层映射到相同的美学时,隐藏一个图层的图例值

在R中,如何将变量(A,B和C)拟合在同一列中,如A和B,以及A和C在同一面板中?

打印XTS对象

使用`Watch()`和`renderUI()`时,不再满足仍出现在SHILINY AFTER条件中的条件输入

计算数据帧中指定值之前的行数,仅基于每行之后的future 行,单位为r

在保留列表元素属性的同时替换列表元素

将项粘贴到向量中,并将它们分组为x的倍数,用空格分隔

将列表中的字符串粘贴到R中for循环内的dplyr筛选器中

多元正态分布的计算

如何在shiny 的应用程序 map 视图宣传单中可视化单点

如何在矩阵图中按标准对数据进行分组以绘制矩阵

希望解析和复制R中特定模式的数据

当y为负值时,无法使stat_cor正确定位到底部?