r - 通过 dplyr 在行上应用自己的函数
问题描述
我是 R 的新手,我一直在寻找解决方案,需要你的帮助:)。
我正在尝试应用代码,该代码将在某些条件下从同一个表中创建具有汇总值的新列。
library(tidyverse)
set.seed(1)
a<-data.frame(weeks=1:52, index=sample(1:3,52,replace=TRUE),factory=sample(c('A','B'),52, replace=TRUE),qnt=sample(1:10,52,replace = TRUE))
a
qnt_sum<-function(x,y,z){
a %>% filter(index==x & factory==z) %>%
filter(weeks > (y - 4) & weeks <= y) %>%
summarise(suma = sum(qnt))
}
a %>%
mutate(sum_qnt=lapply(index,qnt_sum,weeks,factory))
qnt_sum(2,5,'B')
但是在应用 mutate 时,我只得到了错误,使用这个特定的代码
错误:结果的长度必须为 16,而不是 52
但是我尝试使用此代码进行许多变体,但出现了很多不同的错误。我有一种感觉,我有错误的方法来解决这个问题。
期望值样本
解决方案
这可能对您有用:
a %>% mutate(sum_qnt=mapply(qnt_sum, index, weeks, factory))
推荐阅读
- html - 在 Angular 中使用项目数组
- c# - 我正在使用 while 循环在 C# 中反转一个字符串我得到正确的输出但是我使用 for 循环的相同逻辑然后输出是错误的
- protractor - Visual Studio 中的 Protractor npm 安装(节点模块无法在 Visual Studio 中安装)
- python - Python嵌套/递归/树排序与熊猫
- amazon-web-services - Terraform route53 批量记录
- hibernate - 使用 @OneToOne 映射但外键不会使约束失败或不工作
- python - 在 Keras 中不断分配具有不同常量张量的变量时会发生什么?
- php - PHP Codeigniter Htaccess。删除控制器名称和 index.php 并重写 url
- javascript - 在回调中访问全局定义的变量?
- asp.net-core - 无法连接到 .NET Core 3.x 中的数据库(appsettings.json 中的连接字符串)