首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用list对R中的数据进行求和

使用list对R中的数据进行求和
EN

Stack Overflow用户
提问于 2022-02-02 12:16:01
回答 3查看 49关注 0票数 1

考虑R中的下列数据:

代码语言:javascript
运行
复制
df <- data.frame(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(10,20,30))

假设我想把“农业”和“渔业”的值相加(10 + 20 = 30)。例如,我可以这样做:

代码语言:javascript
运行
复制
df$Value[df$Industry == "Agriculture"] + df$Value[df$Industry == "Fishery"]

然而,相反,我想创建清单“农业”和“渔业”,然后总结价值。因为在我的例子中,我有一个很大的data.frame,这将使它更加容易。怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-02 12:28:34

你可以用%in%

代码语言:javascript
运行
复制
df <- data.frame(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(10, 20, 30))
print(df)
industries_to_sum <- c("Agriculture", "Fishery")
print(sum(df[df$Industry %in% industries_to_sum,]$Value))

输出:

代码语言:javascript
运行
复制
     Industry Value
1 Agriculture    10
2     Fishery    20
3    Industry    30
[1] 30
票数 2
EN

Stack Overflow用户

发布于 2022-02-02 13:53:31

为了完整起见,采用潮汐方法:

代码语言:javascript
运行
复制
df <- data.frame(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(10, 20, 30))
df %>% filter(Industry %in% c("Agriculture", "Fishery")) %>%
    summarise(sumValue=sum(Value))

输出:

代码语言:javascript
运行
复制
  sumValue
1       30
票数 1
EN

Stack Overflow用户

发布于 2022-02-02 13:23:00

一种data.table()方法

代码语言:javascript
运行
复制
library(data.table)

DT <- data.table(Industry = c("Agriculture", "Fishery", "Industry"),
                 Value    = c(10,20,30))

DT[Industry != "Industry"][, sum(Value)]

输出

代码语言:javascript
运行
复制
> [1] 30
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70955473

复制
相关文章

相似问题

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