r - 混合 ddply 和 interval 时出错
问题描述
我一直在尝试计算个人的间隔并且遇到了一个奇怪的错误。具体来说,在这段代码中:
library(lubridate)
library(tidyverse)
library(plyr)
df<-tibble(dates=mdy(c("2/20/20","2/25/20","3/1/20","3/11/20","3/20/20")),recips=c("x","x","a","a","a"),treatment=c("T","P","T","P","P"),eventtype=c("a","real","y","z","real"))
df%>%mutate(window=interval(start=dates,end=dates+weeks(2)))
ddply(df,.(recips),mutate,window=interval(start=dates,end=dates+weeks(2)))
最后一行绘制了倒数第二行未绘制的错误。有小费吗?
解决方案
问题将是class
其输出interval
不符合ddply
. 一个选项是转换为character
withas.character
plyr::ddply(df, c("recips"), plyr::mutate,
window = as.character(interval(start = dates, end = dates + weeks(2))))
-输出
# dates recips treatment eventtype window
#1 2020-03-01 a T y 2020-03-01 UTC--2020-03-15 UTC
#2 2020-03-11 a P z 2020-03-11 UTC--2020-03-25 UTC
#3 2020-03-20 a P real 2020-03-20 UTC--2020-04-03 UTC
#4 2020-02-20 x T a 2020-02-20 UTC--2020-03-05 UTC
#5 2020-02-25 x P real 2020-02-25 UTC--2020-03-10 UTC
根据显示的数据,我们正在创建interval
“日期”的每个元素。因此,group_by
不需要该操作
library(dplyr)
df %>%
mutate(window = interval(start=dates,end=dates+weeks(2)))
推荐阅读
- python - 如何从异步返回值
- reactjs - reactjs中如何使用createjs
- bash - 将多个文件中的数据通过管道传输到其原始文件中
- c - scanf中的分配抑制和字段宽度
- mysql - MYSQL - 如何根据计算订单数更新排序
- javascript - 尝试在树莓派上创建不和谐机器人时遇到问题
- r - 如何导出一个函数,然后在 R 中计算它的最大值
- css - 如何使用 css 使用文本效果获取 deteted 图像?
- google-sheets - 如果单元格为空白,则在另一个单元格中显示值
- ruby-on-rails - 尝试进行身份验证时,门卫返回 401 错误“由于未知客户端,客户端身份验证失败,未包含客户端身份验证...”