【问题标题】:How to select a column in a dataframe dynamically in R [duplicate]如何在R中动态选择数据框中的列[重复]
【发布时间】:2021-01-27 01:09:40
【问题描述】:

我想在tibble 中选择名为“b”的列。 “b”是名为col_name 的变量的值。

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
col_name <- "b" # the column to select

df <- tibble(a = c(1,2,3), b = c(2,4,6))

df$b
#> [1] 2 4 6
# But I want to use a variable to dynamically select the column
df$col_name
#> Warning: Unknown or uninitialised column: `col_name`.
#> NULL
Created on 2020-10-12 by the reprex package (v0.3.0)

【问题讨论】:

  • 也许df[ , col_name ] ?
  • 如果你想留在dplyr,那么也许df %&gt;% pull(!!col_name)
  • 当然。谢谢,对不起。
  • 别担心,重复有助于将相似的内容放在一起,请不要删除。

标签: r dplyr


【解决方案1】:
df %>% select( {{ col_name }} )
#or
df %>% select( !!col_name )
#or
df[[col_name]]

在最后一种情况下,您将获得一个向量而不是数据框

【讨论】:

  • 请不要急于回答,如果听起来太简单,很可能之前已经问过,请搜索。
  • @ricardo-villalba 那么mutate(!! col_name = ) 呢?什么是正确的语法?
猜你喜欢
  • 2022-01-02
  • 2021-03-29
  • 1970-01-01
  • 2023-02-01
  • 2015-10-08
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 2021-04-11
相关资源
最近更新 更多