首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过R中的两个分组变量对多个变量求和

如何通过R中的两个分组变量对多个变量求和
EN

Stack Overflow用户
提问于 2020-04-21 17:31:34
回答 1查看 69关注 0票数 0

我想用两个分组变量的多个变量的和创建一个新的数据帧。

我的数据组织如下

代码语言:javascript
运行
复制
Management    Habitat      Var1    Var2   Var3 
   A           Urban        12       6     18
   A          Farmland       1       9     10
   A          Farmland       3      10     17
   B          Forest         5      17     12
   B          Peatland      18      23     18
   C          Peatland      16      22     20
   C          Urban         16      10     21

我有一个跨管理和栖息地的变量求和的代码,但是我不能跨管理和栖息地的多个变量求和来创建一个新的数据框架。

对一个变量求和的代码

代码语言:javascript
运行
复制
newdf<-aggregate(df$`Var1` , by=list(Category=df$Management, Category=df$Habitat), FUN=sum)
EN

回答 1

Stack Overflow用户

发布于 2020-04-21 17:36:05

您可以在aggregate中使用. ~ Management + Habitat对所有剩余列求和:

代码语言:javascript
运行
复制
aggregate(. ~ Management + Habitat, x, sum)
#  Management  Habitat Var1 Var2 Var3
#1          A Farmland    4   19   27
#2          B   Forest    5   17   12
#3          B Peatland   18   23   18
#4          C Peatland   16   22   20
#5          A    Urban   12    6   18
#6          C    Urban   16   10   21

数据:

代码语言:javascript
运行
复制
x <- structure(list(Management = structure(c(1L, 1L, 1L, 2L, 2L, 3L, 
3L), .Label = c("A", "B", "C"), class = "factor"), Habitat = structure(c(4L, 
1L, 1L, 2L, 3L, 3L, 4L), .Label = c("Farmland", "Forest", "Peatland", 
"Urban"), class = "factor"), Var1 = c(12L, 1L, 3L, 5L, 18L, 16L, 
16L), Var2 = c(6L, 9L, 10L, 17L, 23L, 22L, 10L), Var3 = c(18L, 
10L, 17L, 12L, 18L, 20L, 21L)), class = "data.frame", row.names = c(NA, 
-7L))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61340263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档