Как суммировать и объединять два фрейма данных?
86 просмотра
2 ответа
У меня есть два кадра данных:
DATA1:
ID com_alc_cd com_liv_cd com_hyee_cd
A 1 0 0
B 0 0 1
D 0 0 0
C 0 1 0
DATA2:
ID com_alc_dd com_liv_dd com_hyee_dd
B 0 2 0
A 1 0 2
C 0 1 0
D 0 1 0
Я хочу объединить два фрейма данных, чтобы получить сумму двух:
SUM(DATA1, DATA2)
:
ID com_alc com_liv com_hyee
A 2 0 2
B 0 2 1
C 0 2 0
D 0 1 0
Автор: Hannah
Источник
Размещён: 12.11.2019 09:26
Ответы (2)
4 плюса
Решение
Попробуйте это, например, (при условии, что ваши data.frames являются матрицами одинакового размера)
d1 <- DATA1[order(DATA1$ID),]
d2 <- DATA2[order(DATA2$ID),]
data.frame(ID=d1$ID,as.matrix(subset(d1,select=-ID)) +
as.matrix(subset(d2,select=-ID)))
ID com_alc_cd com_liv_cd com_hyee_cd
1 A 2 0 2
2 B 0 2 1
4 C 0 2 0
3 D 0 1 0
РЕДАКТИРОВАТЬ общее решение
library(reshape2)
## put the data in the long format
res <- do.call(rbind,lapply(list(DATA1,DATA2),melt,id.vars='ID'))
## polish names
res$variable <- gsub('(.*_.*)_.*','\\1',res$variable)
## wide format and aggregate using sum
dcast(ID~variable,data=res,fun.aggregate=sum)
ID com_alc com_hyee com_liv
1 A 2 2 0
2 B 0 1 2
3 C 0 0 2
4 D 0 0 1
Автор: agstudy
Размещён: 09.06.2014 06:00
4 плюса
Вы также можете использовать aggregate
names(df1) <- names(df2)
df3 <- rbind(df1, df2)
res <- aggregate(df3[,-1], by=list(df3$ID), sum)
Автор: nico
Размещён: 09.06.2014 06:08
Вопросы из категории :
- r Как получить доступ к последнему значению в векторе?
- r Пакеты оптимизации для R
- r Есть ли у R такие операторские операции, как Perl qw ()?
- r Библиотека / инструмент для рисования тройных / треугольных графиков
- r Участки без заголовков / надписей в R
- r Расчет скользящей средней
- r Режим Emacs ESS - вкладка для области комментариев
- r Преобразование данных из многих строк во многие столбцы
- r Проверить, содержит ли вектор данный элемент
- r Поиск всех позиций для нескольких элементов в векторе
- r Разница между скобками [] и двойной скобкой [[]] для доступа к элементам списка или кадра данных
- r Написание функций на R с учетом объема работ
- r Линейная регрессия и группировка по R
- r Как заставить выполнение приостановить, поспать, подождать X секунд в R?
- r Уровни коэффициента отбрасывания в заданном кадре данных
- r Графики рядом с ggplot2
- r Как отсортировать фрейм данных по нескольким столбцам
- r Как объединить (объединить) кадры данных (внутренний, внешний, левый, правый)?
- r Поворотные и интервальные метки на оси ggplot2
- r Как избежать цикла в R: выбор элементов из списка