我从同一单元获得了许多观察结果,因此我需要合并行。像这样的数据框
data.frame(
fir =c("001","006","001", "006", "062"),
sec = c(10,5,6,7,8),
thd = c(45,67,84,54,23))
fir sec thd
001 10 45
006 5 67
001 6 84
006 7 54
062 8 23
第一列具有3位数字,代表一个单位。我需要将这些行加在一起以获得每个单元的总数。其他列是需要加在一起的数值。因此数据框看起来像
fir sec thd
001 16 129
006 12 121
062 8 23
我需要它为第一列中的任何唯一数字工作。 有任何想法吗?谢谢您的帮助!
答案 0 :(得分:0)
欢迎这是按操作分组的经典案例,在这种情况下,我们希望将sec和thd列的总和进行逻辑分组。
library(tidyverse)
df <- data.frame(
fir =c("001","006","001", "006", "062"),
sec = c(10,5,6,7,8),
thd = c(45,67,84,54,23))
df %>%
group_by(fir) %>%
summarise(sec_sum = sum(sec),
thd_sum = sum(thd))
答案 1 :(得分:0)
我们可以按“和”进行分组
library(dplyr)
df1 %>%
group_by(fir) %>%
summarise_all(sum)
# A tibble: 3 x 3
# fir sec thd
# <fct> <dbl> <dbl>
#1 001 16 129
#2 006 12 121
#3 062 8 23
或者使用aggregate
中的base R
aggregate(. ~ fir, df1, sum)
df1 <- data.frame(
fir =c("001","006","001", "006", "062"),
sec = c(10,5,6,7,8),
thd = c(45,67,84,54,23))