Фильтрация одного кадра данных по нескольким столбцам в другом - PullRequest
0 голосов
/ 24 октября 2018

Извините, если это глупый вопрос!

Моя цель в основном такая же, как здесь: Возьмите даты из одного кадра данных и отфильтруйте данные в другом кадре - R и продолжайте использоватьdplr, поскольку позже я собираюсь запустить этот код во всех строках моего набора данных с помощью row_wise ()

Однако в моем случае я хочу взять годы начала и окончания из двух разных столбцов вВторой фрейм данных.

Вот некоторые фиктивные данные (взятые из исходного поста и адаптированные к моей проблеме):

main_data = data.frame(year=c(1966:2017))

second_data = data.frame(Participant = c(1:6),
           Start_year = c(2012,1994,1974,1983,1969,2002),
           End_year = c(2017,2017,2017,2017,2017,2017))

и этот код написан на основе оригинального поста:

filtered.total =
   main_data %>% 
   rowwise() %>% 
   mutate(year = any(year >= second_data$Start_year & year <= 
      second_data$End_year)) %>%
   filter(year) %>%
   data.frame()

Я также фильтрую свои данные по местоположению (страна и округ), но он просто выдает мне следующее сообщение об ошибке для моего набора данных:

Error in filter_impl(.data, quo) : Result must have length 2299, not 0

и для фиктивных данных выше:

 In year <= second_data$End_year :
 longer object length is not a multiple of shorter object length

Спасибо за любую помощь - совершенно новый для R, и моя докторская диссертация проверяет мои минимальные знания прямо сейчас!

1 Ответ

0 голосов
/ 24 октября 2018

вам может понадобиться использовать min(second_data$year) и max(second_data$year), так как в данный момент вы предоставляете много значений для сравнения, и я думаю, что на это жалуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...