我们可以在R中使用tapply函数和ks.test吗?

时间:2017-04-07 20:55:44

标签: r

我们可以在R?

中使用tapply函数和ks.test一起使用

Tapply用于一次在多个结果上应用函数。

tapply(airquality$Month,airquality$Day, ks.test)

当我使用该功能时,我得到了如下错误:

Error in FUN(X[[i]], ...) : argument "y" is missing, with no default

有人可以建议有可能在ks.test中使用tapply吗?

1 个答案:

答案 0 :(得分:0)

正如@HubertL所提到的,ks.test中的R需要y参数,因此错误告诉你'y'缺失。从文档中,对于两个样本KS测试,y应该是数字向量。如果你正在进行一个样本ks测试,y应该是你要比较的分布的字符串(例如pnorm表示正常,p.gamma表示gamma)。

我认为这就是你想要的:

tapply(airquality$Month, airquality$Day, ks.test, y = "pnorm")

dplyr解决方案(列表列)

airquality %>% group_by(Day) %>% do(test_result = ks.test(.$Month, y = "pnorm") 

如果您想获得两个变量的ks.test,那么您需要:

lapply(airquality[c("Month", "Day")], ks.test, y = "pnorm")