【问题标题】:Trouble with summing specific rows and columns对特定行和列求和的问题
【发布时间】:2020-11-02 21:00:34
【问题描述】:

我有一个问题,想知道是否有代码可以让我比手动解决问题更快。

因此,在我的示例中,我有 100 只不同的基金,基金中有许多证券。在每个基金中,我有基金中每种证券的Name,显示给定季度的Date,发行证券的State,以及总数中每种证券的Weighting基金。 Name 并不重要,重要的是发出它的 State

我想知道是否有一种方法可以让我根据每个季度所需的特定 State 将每个不同基金的 Weighting 相加。所以让我们从 Fund1 说,我需要 16-1Q 的州 SC 和 AZ 的 Weighting 的总和。总和为 (.18 + .001)。我不需要包括 KS 的权重,因为我对该特定状态不感兴趣。我只会对每个 FundId 的州 SC 和 AZ 感兴趣。然而,在我真正的问题中,我对大约 30 个州感兴趣。然后我会在 16-2 季度为 Fund1 执行相同的任务,依此类推,直到 17-4 季度。我的最终目标是找到我感兴趣的州的每个投资组合权重的总和,并查看它如何随时间变化。我可以通过每个基金手动执行此操作,但是有没有办法根据我想要的 State 和每个 Date(16-1Q、16-2Q、等等)?

最后我想要一张这样的表格:

(.XX) 是投资组合权重的总和

数据示例

【问题讨论】:

  • 为了提高获得好答案的机会,您应该让读者更容易理解和重现您的问题。 1)请分享重现您的场景所需的数据。 dput() 是 R 中的一个函数,它创建代码来重新创建数据。将它用于您的数据并将输出粘贴到您的问题中,与我们共享数据。 2) 分享自己尝试解决问题的代码。 3)在帖子中嵌入图片。

标签: r automation sum


【解决方案1】:

您发送的“数据示例”链接的数据格式比“XX 是投资组合权重的总和”示例要好得多...只有在 Excel 中,您才会更喜欢这种其他格式

所以使用示例数据框,执行此操作

library(dplyr)

example_data <- example_data %>%
group_by(Fund_Id) %>%
summarize(sum = sum(Weighting))

【讨论】:

  • 或者你可能想要 group_by(State) 或 group_by(State, Fund_Id) 两者
  • 谢谢!但是,我只想对我感兴趣的特定状态的加权求和。我将如何隔离您编写的代码中的某些状态? (比如我只想隔离AZ和SC)
  • example_data % filter(State == "Florida") %>% group_by(Fund_Id) %>% summarise(sum = sum(Weighting)) 这是一种非常常见的工作流程
  • 如果这有帮助,请点击向上箭头
  • 我明白了。非常感谢!
【解决方案2】:

我们可以在base R中使用aggregate

aggregate(Weighting ~ Fund_id, example_data, sum)

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 2022-06-20
    • 1970-01-01
    • 2023-01-14
    • 2021-12-06
    相关资源
    最近更新 更多