#r
Вопрос:
У меня есть df
фрейм данных, который выглядит так
City TreeID Age Diameter City_1 X 1 6 City_1 Y 2 5 City_2 Y 3 5 City_3 X 4 10
У меня есть переменная nominal
, которая может быть "TreeId"
, "Age"
или Diameter
и другая переменная city
, у которой имя города хранится в строковом формате. Я хочу, чтобы у меня была возможность выбрать только значения столбца nominal
для правильного названия города
Пример : city = "City_1"
и nominal = "Age"
, тогда я должен только подобрать значения 1
и 2
Я искал здесь, но ничего из того, что я мог найти, не было адаптировано к моему случаю, потому что я использую переменные, поэтому я заранее не знаю, какой столбец я хочу выбрать. Я заблудился, любая помощь будет оценена по достоинству. Спасибо
Ответ №1:
Для этого есть функция.
return_value lt;- function(data, city, nominal) { data[data$City == city, nominal] } return_value(df, 'City_1', 'Age') #[1] 1 2 return_value(df, 'City_2', 'Diameter') #[1] 5
Комментарии:
1. Спасибо! Теперь что, если бы у меня была вторая номинальная переменная с именем nominal2 ? Под этим я подразумеваю, что я хотел бы выбрать только значение из столбца nominal1, если nominal2 удовлетворяет некоторому условию
Ответ №2:
Вы могли бы использовать pull
:
library(dplyr) df %gt;% filter(City == "City_1") %gt;% pull(Age) df %gt;% filter(City == "City_1") %gt;% pull(Diameter)
[1] 1 2 [1] 6 5