Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 按组求和,包括中间组_R - Fatal编程技术网

R 按组求和,包括中间组

R 按组求和,包括中间组,r,R,我有: 你可以试试这个 group value 1 1 4 2 2 5 3 3 0 4 4 5 5 5 6 library(tidyr) 图书馆(dplyr) df%>% 突变(组=因子(组,1:5))%>% 完成(组)%%>%group由(组)%%>% dplyr::总结(值=总和(值,na.rm=T)) 组值 1 1 4 2 2 5 3 3 0 4 4 5 5

我有:

你可以试试这个

  group value
1  1     4
2  2     5
3  3     0
4  4     5
5  5     6
library(tidyr)
图书馆(dplyr)
df%>%
突变(组=因子(组,1:5))%>%
完成(组)%%>%group由(组)%%>%
dplyr::总结(值=总和(值,na.rm=T))
组值
1      1     4
2      2     5
3      3     0
4      4     5
5      5     6
您可以试试这个

  group value
1  1     4
2  2     5
3  3     0
4  4     5
5  5     6
library(tidyr)
图书馆(dplyr)
df%>%
突变(组=因子(组,1:5))%>%
完成(组)%%>%group由(组)%%>%
dplyr::总结(值=总和(值,na.rm=T))
组值
1      1     4
2      2     5
3      3     0
4      4     5
5      5     6

使用
tidyverse
,您可以轻松做到这一点:

library(tidyr)
library(dplyr)
df %>%
    mutate(group=factor(group, 1:5)) %>%
    complete(group) %>%group_by(group)%>%
    dplyr::summarise(value=sum(value,na.rm = T))


   group value
  <fctr> <dbl>
1      1     4
2      2     5
3      3     0
4      4     5
5      5     6
结果是:

library(dplyr)
library(tidyr)

df %>% 
  group_by(group) %>% 
  summarise(valuesum = sum(value)) %>% 
  full_join(., expand(df, group = 1:5)) %>% 
  complete(group, fill = list(valuesum = 0))

使用
tidyverse
,您可以轻松完成此操作:

library(tidyr)
library(dplyr)
df %>%
    mutate(group=factor(group, 1:5)) %>%
    complete(group) %>%group_by(group)%>%
    dplyr::summarise(value=sum(value,na.rm = T))


   group value
  <fctr> <dbl>
1      1     4
2      2     5
3      3     0
4      4     5
5      5     6
结果是:

library(dplyr)
library(tidyr)

df %>% 
  group_by(group) %>% 
  summarise(valuesum = sum(value)) %>% 
  full_join(., expand(df, group = 1:5)) %>% 
  complete(group, fill = list(valuesum = 0))

您可以从基本R使用
merge
。我已将data.frame的名称更改为
dat
,因为
df
是R函数的名称

library(data.table)
setDT(df)[.(group = 1:5), on = 'group', sum(value, na.rm = TRUE), by = .EACHI]

dat您可以从基本R使用
merge
。我已将data.frame的名称更改为
dat
,因为
df
是R函数的名称

library(data.table)
setDT(df)[.(group = 1:5), on = 'group', sum(value, na.rm = TRUE), by = .EACHI]

dat只需执行
merge
,然后使用
is.NA
NA
更改为0,即
merge(data.frame(group=1:5)、aggregate(value~group,data=df,FUN='sum')、all.x=TRUE)
或者,
rbind
一个数据.frame,其中包含缺少的组值,并在此基础上进行聚合,如
aggregate>(value~group,data=rbind(df,data.frame(group=setdiff(1:5,unique(df$group)),value=0),FUN='sum')
。只需进行
merge
,然后使用
is.NA
NA更改为0,即
合并(data.frame(group=1:5),聚合(value~group,data=df,FUN='sum'),all.x=TRUE)
或者,
rbind
一个缺少组值的data.frame,并在此基础上进行聚合,比如
aggregate(value~group,data=rbind(df,data.frame)(group=setdiff(1:5,unique(df$group)),value=0),FUN='sum')
。OP想要一个基本R解决方案OP想要一个基本R解决方案OP想要一个基本R解决方案OP想要一个基本R解决方案OP想要一个基本R解决方案