我有一个包含两个列值的数据集,我想用Wilcoxon测试进行测试。
我需要应用测试过滤不同级别的日期,在某些预定义的时间间隔上应用测试。
这是我的代码:
library(dplyr)
library(lubridate)
set.seed(42)
df <- data.frame(matrix(rpois(n = 500, lambda = 12), ncol=2))
df$date <- sample(seq(as.Date('2017/01/01'), as.Date('2017/01/31'), by="day"), nrow(df), replace = TRUE)
# calculate endopoints
endpoint_1 <- max(df$date) - weeks(1)
endpoint_2 <- max(df$date) - weeks(2)
# test endpoint 1
df %>%
filter(date < endpoint_1 ) -> df1
wilcox.test(df1$X1, df1$X2)
# test endpoint 2
df %>%
filter(date < endpoint_2 ) -> df2
wilcox.test(df2$X1, df2$X2)
我认为这是一种非常低效的方法。
如何在两个时滞过滤数据集并以更干净的方式访问测试结果?