У меня есть этот код:Matching кадры данных
df1 <- data.frame(letter=c("a", "a", "a", "b", "b", "c", "d", "e"),
value=c(NA))
df2 <- data.frame(letter=c("a", "b", "g", "f", "d", "e", "a", "b", "a", "c"),
number=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
Я хочу, чтобы соответствовать этим два кадра данных с помощью письма и возвращает соответствующее число в df2 в столбце Значение в df1.
Так что результат для df1 будет выглядеть это так:
'df2 [матч (df1 $ письмо, df2 $ письмо),] ' –
Похоже, вы хотите присоединиться и по местоположению. Вы можете 'library (data.table); setDT (df1) [, indx: = rowid (letter)]; setDT (df2) [, indx: = rowid (letter)]; df1 [df2, value: = number, on =. (letter, indx)] '(не предопределять' value = c (NA) 'в' df1 'пожалуйста, он создает логический вектор вместо числового) –
@PierreLafortune Это не то, что они хотят. –