ref_tables <- tibble(`col 1` = letters[1:5], `col 2` = letters[6:10], `col 3` = letters[11:15])

  `col 1` `col 2` `col 3`
  <chr>   <chr>   <chr>  
1 a       f       k      
2 b       g       l      
3 c       h       m      
4 d       i       n      
5 e       j       o  

index_selection <- c("col 1", "col 2", "col 3")

我想创建一个定制函数,应用于REF_TABLES的每一行.我想在名为DFS的第四栏中看到结果.

这是一个很普通的函数:

f <- function(x) {
  return(paste(x, collapse = " "))
}

如果我使用这样的反号显式地输入列名,我会得到我所期望的结果.

d <- ref_tables %>%
  rowwise() %>%
  mutate(dfs = list(f(c(`col 1`, `col 2`, `col 3`))))

# d$dfs[1] returns the result i'm expecting "a f k".

但我想使用字符向量index_select.

d <- ref_tables %>%
  rowwise() %>%
  mutate(dfs = list(f(index_selection)))

# d$dfs[1] returns a result I am not expecting. "col 1 col 2 col 3".

我try 使用!!,!!,sym()的组合,但我想不出如何做到这一点.有谁能帮忙吗?

推荐答案

您可以在 Select 函数(如c_across())中借助all_of()使用另一个矢量中的列名:

ref_tables %>%
  rowwise() %>%
  mutate(dfs = list(f(c_across(all_of(index_selection)))))

R相关问答推荐

使用sensemakr和fixest feols模型(R)

按R中的组查找相邻列的行累积和的最大值

从gtsummary包中使用tBL_strata()和tBL_summary()时删除变量标签

如何在xyplot中 for each 面板打印R^2

基于多列将值链接到NA

如何在编辑列时更新可编辑数据表,并使用该表在Shiny中执行连续计算

提取具有连续零值的行,如果它们前面有R中的有效值

在R中使用download. file().奇怪的URL?

如果可能,将数字列转换为整数,否则保留为数字

如何在PackageStatus()中列出&q;不可用的包&q;?

使用Scale_*_MANUAL时在图例中保留未使用的系数级别

R如何将列名转换为更好的年和月格式

如何使用For-R循环在向量中找到一系列数字

如何将一列中的值拆分到R中各自的列中

在R中,如何从一系列具有索引名的变量快速创建数据帧?

如何移动点以使它们的打印不重叠

填充图例什么时候会有点?

如何使用ggplot2根据绘图中生成的斜率对小平面进行排序?

在GT()中的列之间添加空格

R:水平旋转图