2015-02-21 4 views
0

У меня есть большой информационный кадр с информацией о полу индивидуумов. У меня есть второй информационный кадр с наблюдениями за этими людьми, и я хочу заполнить соответствующий пол для каждого человека.R: Связывание значений с наборами данных и заполнение соответствующих значений

a <- data.frame(Individual = c(1,2,3,4,5,6,7,8), 
      Gender = c("M","M","F","F","M","F","M","M")) 

b <- data.frame(Individual = c(2, 1, 5, 2, 8, 8, 3, 3, 4, 4, 4, 5, 6, 1, 7), 
      Gender = c(NA)) 

Что R код можно использовать для распространения информации о половой принадлежности человека от data.frame а и заполнить его в гендерной колонку data.frame Ь, учитывая порядок и длину двух данных. кадры разные?

ответ

1

Вы можете попробовать match

b$Gender <- a$Gender[match(b$Individual, a$Individual)] 

Другим вариантом было бы использовать merge.

library(data.table) 
setkey(setDT(a), Individual)[b['Individual']] 
+0

Thanks @akrun. Это работает для примера набора данных, но когда я использую код на моем полном наборе данных, он говорит NULL. Мысли? – katef

+0

Извините, игнорируйте мой предыдущий комментарий/вопрос. Я получил ваш код, чтобы работать нормально. Спасибо! – katef

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