r - 使用dplyr和select_()从数据框中选择列列表

标签 r dplyr

我正在尝试使用以下函数从数据框中提取一些列:

library('dplyr')
desired_columns = c(
  'a',
  'b',
  'c')
extract_columns <- function(data) {
  extracted_data <- data %>%
    select_(desired_columns)
  return(extracted_data)
}


但是,当我尝试它时,却没有达到我的期望:

> df <- data.frame(a=1:5, b=1:5, c=1:5, d=1:5)
> df
  a b c d
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
> extract_columns(df)
  a
1 1
2 2
3 3
4 4
5 5


我似乎只获得第一列,但我不知道自己在做什么错。如何获取所有要求的列?

最佳答案

您只是缺少了.dots中的select_参数:

extract_columns <- function(data) {
    extracted_data <- data %>%
        select_(.dots = desired_columns)
    return(extracted_data)
}

extract_columns(df)
  a b c
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5

关于r - 使用dplyr和select_()从数据框中选择列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592139/

相关文章:

r - 回滚 RStudio 控制台

r - 将矩阵 R 中的所有元素相加

R - 按名称将多个 2 级元素附加到列表的每个 1 级元素

r corrplot 与聚类 : default dissimilarity measure for correlation matrix

r - 使用 dplyr 和 stringr 检测多个字符串

r - 计算不同因素组合的行数

r - R中将多列切割成大致相等的有序组的函数

r - 将两个嵌套 tibble 变量相乘

r - dplyr:子分组(group_by)数据帧上的colSums:优美

r - 在 dplyr 0.6 中对多个以编程方式指定的变量进行分组