Вы можете использовать mapply()
.
Сначала приведем несколько примеров данных:
Totalsamples <- list(
data.frame(year = 1990:2000, total = rpois(11, 100)),
data.frame(year = 1990:2000, total = rpois(11, 100))
)
counts <-list(
data.frame(
year = 1990:2000,
a = rpois(11, 10),
b = rpois(11, 20)),
data.frame(
year = 1990:2000,
a = rpois(11, 10),
b = rpois(11, 20)
)
)
Суммируйте столбцы в counts
counts <- lapply(counts, function(x) {
x$sum <- rowSums(x[c("a", "b")])
x
})
Теперь используйте mapply()
для привязки. Примечание: для этого требуется, чтобы порядок строк был одинаковым во всех фреймах данных, а порядок фреймов данных был одинаковым.т.е. он будет привязывать первую строку первого data.frame в Totalsamples с первой строкой первого data.frame в счетчиках и так далее ...
mapply(function(x, y) {
out <- cbind(x, y["total"])
out
}, counts, Totalsamples, SIMPLIFY = FALSE)