Суммирование столбцов из нескольких фреймов данных в R - PullRequest
1 голос
/ 01 апреля 2020

У меня есть несколько фреймов данных, которые я создал в для l oop. Все они имеют одинаковые 3 столбца: XLocs, YLocs, PatchStatus. XLoc и YLoc содержат одинаковые координаты в каждом кадре данных. PatchStatus может быть 0 или 1 в зависимости от того, как работает модель. Пример фрейма данных 1 выглядит как

print(listofdfs[1])

allPoints.xLocs allPoints.yLocs allPoints.patchStatus
1        73.5289654       8.8633913                     0
2        21.0795393      44.4840248                     0
3        51.5969348      21.7864016                     0
4        61.9007129      32.4763183                     1
5        62.3447741      41.0651838                     1
6        16.9311605       6.3765206                     0

А фрейм данных 2 выглядит как

print(listofdfs[2])

 allPoints.xLocs allPoints.yLocs allPoints.patchStatus
1        73.5289654       8.8633913                     0
2        21.0795393      44.4840248                     1
3        51.5969348      21.7864016                     0
4        61.9007129      32.4763183                     1
5        62.3447741      41.0651838                     1
6        16.9311605       6.3765206                     0

Я надеюсь иметь 1 результирующий фрейм данных, который имеет XLocs, YLocs и SUM состояния патча ( примечание: я планирую объединить 15 фреймов данных, поэтому значение PatchStatus может составлять от 0 до 15).

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Я разместил этот ответ вместе с тепловой картой - График-3: { ссылка }

library('data.table')
df2 <- rbindlist(l = listofdfs)
df2 <- df2[, .(sum_patch = sum(allPoints.patchStatus)), by = .(allPoints.xLocs, allPoints.yLocs)]
1 голос
/ 01 апреля 2020

Мы можем связать наборы данных вместе и создать группу: sum

library(dplyr)
bind_rows(listofdfs) %>%
      group_by( allPoints.xLocs, allPoints.yLocs) %>%
      summarise(allPoints.patchStatus = sum(allPoints.patchStatus))

Или используя rbind и aggregate из base R

aggregate(allPoints.patchStatus ~ ., do.call(rbind, listofdfs), FUN = sum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...