r - 粘贴到tidyverse的select()中

标签 r dplyr tidyverse

我正在处理的数据集如下所示

a   b     vara_1 vara_2 vara_3 vara_4 vara_5 .... varb_1 varb_2 varb_3 varb_4
-----------------------------------------------------------------------------
100 120   a      b      c      d      e           w      x      y      z


我想根据paste0函数生成的特定顺序更改数据集的列顺序:

> paste0(c("vara_", "varb_"),rep(1:10, each=2))
 [1] "vara_1"  "varb_1"  "vara_2"  "varb_2"  "vara_3"  "varb_3"  "vara_4"  "varb_4"  "vara_5"  "varb_5" 
[11] "vara_6"  "varb_6"  "vara_7"  "varb_7"  "vara_8"  "varb_8"  "vara_9"  "varb_9"  "vara_10" "varb_10"


因此数据集的最终外观将变为

a   b     vara_1 varb_1 vara_2 varb_2 vara_3 varb_3 ....
-----------------------------------------------------------------------------
100 120   a      w      b      x      c      y  ....


无论如何,可以将其转换为tidyverse的select()函数可读的格式吗?

我努力了

condition <- paste0(c("vara_", "varb_"),rep(1:10, each=2)
data <- data %>% select(a, b, condition)


而且data <- data %>% noquote(select(a, b, condition))也没有运气。

列出select()的所有变量/列顺序的方法是否可行?任何帮助或实现同一目标的替代方式,不胜感激!

最佳答案

您应该使用select_at而不是select

数据

df <- data.frame(a=100, b=120, vara_1="a", vara_2 = "b", vara_3 = "c",
            varb_1 = "d", varb_2 = "e", varb_3 = "f")

    # a   b vara_1 vara_2 vara_3 varb_1 varb_2 varb_3
# 1 100 120      a      b      c      d      e      f


指定列

thesecols <- c("a", "b", paste0(c("vara_", "varb_"),rep(1:3, each=2)))


使用select_at

library(dplyr)
df %>%
    select_at(vars(thesecols))

    # a   b vara_1 varb_1 vara_2 varb_2 vara_3 varb_3
# 1 100 120      a      d      b      e      c      f

关于r - 粘贴到tidyverse的select()中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47447105/

相关文章:

r - 按组汇总 wtd.quantile

r - if_else 用于删除每组中的第一行 - dplyr

r - 将一个数据帧的每个值乘以按 id 搜索的另一个数据帧的一行

r - 在 Dockerfile 中为 R 添加 CRAN 镜像/PPA

r - Sparklyr:如何将列表列分解为 Spark 表中自己的列?

r - dplyr::n() 返回 "Error: This function should not be called directly"

r - 使用 tidyverse 向量化返回多个变量的函数

python - R 或 Python 中是否有函数/工作流来绘制每个位置的字符以进行单词比较?

r - 如何使用两个因子根据因子水平在 facet_wrap 中换行?

r - 树形图中的颜色