R — Выбор значений столбца на основе значений другой строки

#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