У меня есть два фрейма данных, A и B. В B у меня есть два ключевых столбца, и для каждой строки в B мне нужно подсчитать количество строк в A, соответствующих этим ключам.
Я знаю, как решить проблему, используя цикл for, но это занимает вечность, и мне было интересно, есть ли более разумный способ сделать это. Я все еще новичок в R, так что вы должны простить меня, если я пропущу какое-то очевидное решение.
Кадры данных имеют следующую структуру. Конечно, в действительности кадры данных намного больше.
A <- data.frame(c(1, 2, 1), c(2, 1, 2), c("alpha", "bravo", "charlie"))
colnames(A) <- c("key1", "key2", "value")
B <- data.frame(c(1, 2, 3), c(2, 1, 3), NA)
colnames(B) <- c("key1", "key2", "count")
Я использовал следующий цикл for и получил правильный результат.
for (i in 1:nrow(B)) {
B$count[i] <- sum(A$key1 == B$key1[i] & A$key2 == B$key2[i], na.rm = TRUE)
}
Однако запуск кода занял много времени, и я подозреваю, что есть лучший способ сделать это. Буду признателен за любую помощь!