【问题标题】:How to sum one column based on another column如何根据另一列对一列求和
【发布时间】:2017-04-20 22:05:44
【问题描述】:

这是我的第一篇文章,如有不妥之处,敬请原谅。我正在使用 R 进行文本分析,目前正在尝试总结我的数据框以另一列为条件的列。具体来说,我的结果“dfResults”如下所示:

dfResults

我想计算所有积极词的词频 (1) 和所有消极词的频率 (-1),以便我可以轻松计算情绪得分。这可能很容易,但我尝试了聚合和求和函数,但没有奏效。非常感谢您的帮助!

【问题讨论】:

  • sentiment分组,然后求和频率
  • 请出示您用 R 编写的代码和数据集。

标签: r dataframe sum aggregate analysis


【解决方案1】:

希望这是你想要的:

library(dplyr)
data %>% group_by(sentiment) %>% summarise(x = sum(freq))

【讨论】:

    【解决方案2】:

    以上两个答案都可以。此外,如果您想在不使用任何库的情况下执行此操作,这是基本方式,那么您至少有两个选择

    1. split() 数据并将结果列表与 lapply/sapply 相加,或者
    2. use aggregate()
      lapply ( ( split(df$freq,df$sentiment) ), sum)    
      aggregate(df$freq, by=list(df$sentiment), FUN=sum)
    

    编辑/更正 - aggregate 不是来自基础,而是来自 stats 包。但是,鉴于 stats 也是默认包之一,它在 R 会话中可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-16
      • 2012-02-10
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多