为方便起见,我简化并概括了问题的代码。
所以我的问题(即 R 问题)是我试图循环通过一组 Kolmogorov Smirnov ks.boot 测试,以针对两个因素的多个级别进行测试。我需要对向量 df.test$names 的每个级别的数据进行子集化(例如 W、X、Y 和 Z 代表物种名称),然后循环比较 df.test$TSM.FACT 的每个级别之间的长度分布(例如 A、B、C 等代表时间段)。
因此,对于 df.test$names 中的每个级别(例如 W、X、Y、Z),我需要比较它们在不同时间段 A 和 B 的长度分布;然后是 A 与 C,然后是 B 与 C,并将每个结果保存在数据框中;记录比较发生的地方。
#for ease create the data##
df.fact <- data.frame("A"=abs(rnorm(1000, mean = 350, sd=160)),"B"= abs(rpois(n = 1000, lambda = 50)), "C"=abs(rnorm(1000, mean = 200, sd=80)), names=rep(factor(LETTERS[23:26]), 1000))
library(reshape2)
df.test<-melt(df.fact, id.vars = "names", value.name = "Length2")
names(df.test)[names(df.test) =="variable"] <- "TSM.FACT"
names(df.test)[names(df.test) =="value"] <- "length2"
dfX <-subset(df.test, names == c("X"))
A <-subset(dfX , TSM.FACT == c("A"))
B <-subset(dfX , TSM.FACT == c("B"))
C <-subset(dfX , TSM.FACT == c("C"))
KS.XAB <- ks.boot(A$length2,B$length2, nboots=5000)
KS.XAC <- ks.boot(A$length2,C$length2, nboots=5000)
KS.XBC <- ks.boot(B$length2,C$length2, nboots=5000)
summary(KS.XAB)
summary(KS.XAC)
summary(KS.XBC)
dfY<-subset(df.test, names == c("Y"))
A <-subset(dfY , TSM.FACT == c("A"))
B <-subset(dfY , TSM.FACT == c("B"))
C <-subset(dfY , TSM.FACT == c("C"))
KS.YAB <- ks.boot(A$length2,B$length2, nboots=5000)
KS.YAC <- ks.boot(A$length2,C$length2, nboots=5000)
KS.YBC <- ks.boot(B$length2,C$length2, nboots=5000)
summary(KS.YAB)
summary(KS.YAC)
summary(KS.YBC)
#AND REPEAT FOR Z#