2014-10-22 5 views
-3

Возможно ли найти соответствующие строки одного кадра данных в другом кадре данных. Использование команд R? После этого сохраните результат в другом кадре данных.Поиск соответствующего значения строки фрейма данных с использованием другого фрейма данных

Пример:

 data1 = airquality[1:14,] 
    data2 = data.frame(index=data1$Ozone[6:14]) 

Я хочу иметь в другом фрейме данных даты corrresponding одних и те же строки этого кадра 2 данных. Я рассматриваю значение озона для индекса данных1 как индекс.

Так что я хочу, чтобы получить, наконец, это нечто, как это в Data3:

 index Month Day 
    28   5 6 
    23   5 7 
    19   5 8 
     8   5 9 
    NA   5 10 
     7   5 11 
    16   5 12 
    11   5 13 
    14   5 14 
+3

Непонятно, что вы хотели. Пожалуйста, покажите пример набора данных и ожидаемый результат. – akrun

+2

Возможно, вы ищете 'merge', но сейчас это не совсем понятно. –

+0

Столбец Озона в воздушной среде имеет дублированные записи, что делает его не очень подходящим для показа индекса. Пример: строка 7 ваших данных1 является 7, но 7 также находится в строках 76 и 147 исходных данных. Итак, как вы знаете в примере, какие строки данных1 вы хотите добавить в data2? –

ответ

0

Вы можете использовать %in% оператор:

data3 <- data1[data1$Ozone %in% data2$index, c("Ozone", "Month", "Day")] 
data3 

    Ozone Month Day 
5  NA  5 5 
6  28  5 6 
7  23  5 7 
8  19  5 8 
9  8  5 9 
10 NA  5 10 
11  7  5 11 
12 16  5 12 
13 11  5 13 
14 14  5 14 

Вы Nas в вашем примере индекса. R выберет все NA в результирующем файле данных. Если вы не хотите выбирать все из них, не используйте их в индексах.

Если вы хотите использовать имена строк, вы могли бы сделать что-то вроде этого:

data1[!rownames(data1) %in% 1:5, c("Ozone", "Month", "Day")] 

    Ozone Month Day 
6  28  5 6 
7  23  5 7 
8  19  5 8 
9  8  5 9 
10 NA  5 10 
11  7  5 11 
12 16  5 12 
13 11  5 13 
14 14  5 14 

См here для получения дополнительной информации о Подменю. Также полезен this site.

Смежные вопросы