У меня есть фрейм данных и вы хотите отфильтровать его одним из двух способов, по столбцу «this» или столбцу «that». Я хотел бы иметь возможность ссылаться на имя столбца как на переменную. Как (в dplyr
, если это имеет значение) ссылаюсь ли я на имя столбца переменной?Фильтровать фрейм данных по имени столбца символа (в dplyr)
library(dplyr)
df <- data.frame(this = c(1, 2, 2), that = c(1, 1, 2))
df
# this that
# 1 1 1
# 2 2 1
# 3 2 2
df %>% filter(this == 1)
# this that
# 1 1 1
Но сказать, что я хочу использовать переменную column
держать либо «это» или «что», а фильтр на независимо от значения column
есть. Оба as.symbol
и get
работают в других контекстах, но не в этом:
column <- "this"
df %>% filter(as.symbol(column) == 1)
# [1] this that
# <0 rows> (or 0-length row.names)
df %>% filter(get(column) == 1)
# Error in get("this") : object 'this' not found
Как я могу превратить значение column
в имени столбца?
Почему вы хотите это сделать? Попытка параметризировать выбор переменной? – smci
У меня есть набор данных с двумя типами вещей в нем и разными столбцами для каждого. Я хочу подойти к этому так, потому что я использую Shiny для интерактивной визуализации, и я хочу, чтобы люди выбирали, к какому типу вещей нужно смотреть, но затем используйте тот же код для извлечения данных, передавая их в имени столбца по их выбору. – wdenton
Почти отправил мой вопрос и нашел это :) – biocyberman