R统计、函数
大家好! 我有以下问题。三栏:R统计、函数,r,function,aggregate-functions,R,Function,Aggregate Functions,大家好! 我有以下问题。三栏: "Date" "Partner" "Costs" 01.01. GMX 100 01.01. Yahoo 150 ... R应执行以下步骤: 识别每个唯一的合作伙伴(如级别(df$partner)) 以第一个合作伙伴(如雅虎)为例,执行以下(雅虎的成本为02.01./雅虎的成本为02.01.-1 如果差值大于50%,则应将雅虎02.01的成本乘以当月所有天数-1加上雅虎第一天的成本 如果差异小于50%,则应将雅虎第一次和第二次约会的成
"Date" "Partner" "Costs"
01.01. GMX 100
01.01. Yahoo 150
...
R应执行以下步骤:
- 识别每个唯一的合作伙伴(如
)级别(df$partner)
- 以第一个合作伙伴(如雅虎)为例,执行以下
(雅虎的成本为02.01./雅虎的成本为02.01.-1
- 如果差值大于50%,则应将
雅虎02.01的成本乘以当月所有天数-1加上
雅虎第一天的成本
- 如果差异小于50%,则应将雅虎第一次和第二次约会的成本之和除以2 ->乘以当前月份的所有天数
- 拿第二个,第三个。。。合作伙伴并执行上述所有步骤 与每一个单独的伙伴
"Date" "Partner" "Costs"
TODAY GMX RESULT
TODAY Yahoo RESULT
...
提前非常感谢 这是一个可疑的具体问题,但在其核心我看到了一个共同的模式。您希望对每个子集执行复杂的聚合函数(不管您如何定义子集)。我经常使用以下方法:
do.call(rbind, lapply(split(your_data, your_data$subset), function(x) {...}))
首先,您将
数据帧拆分为一个数据帧列表,每个数据$subset
的“级别”对应一个数据帧。然后将函数应用于每个子集数据帧。您需要自己实现聚合逻辑,但基本上,x
表示该子集的所有行,并且您的函数应该返回一个新的数据帧,该数据帧按照您的意愿进行聚合。然后do.call
和rbind
将子集数据帧列表合并回一个数据帧。这是家庭作业还是你将工作外包给SO?这是为了好玩。我想学习R中的函数和聚合,也就是说,它的目的是学习R统计学,重点是你必须付出一些努力。没有人会为你做你的项目。如果你用谷歌搜索“R unique”,你会找到第一个问题的答案。如果你仍然不知道怎么做,可以问一个特定的问题(即1个问题而不是4个问题),说明你尝试过的代码、期望的输出以及代码的输出与预期的不同。我明白了。谢谢你的评论。我确实尝试了很多,但都没有成功。但我明白你的意思了,我将发布一个带有脚本的新问题。对不起,请不要生气。我不希望smb执行我的项目。否则我不会学习->我想理解脚本中的每个符号!