У меня есть такая матрица
df1 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df2 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df3 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df4 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df5 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df6 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df7 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df8 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df9 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df10 <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
df <- rbind(df1,df2,df3,df4,df5,df6,df7,df8,df9,df10)
У меня есть такой вектор
dft <- sample(seq(1,10), size=100, replace=TRUE, prob=c(.02,.01,.01,.01,.01,.01,.005,.005,.01,.01))
Затем я выполняю свой тест с такими данными
t<- sapply(1:nrow(df), function(i) ks.test(as.vector(df[i,]), as.vector(dft)))
У меня есть файл списка с именем t , который дает мне значения D и значения p.values, я хочу извлечь их и отобразить их, когда они превышают 100. Есть ли способ сделать это, вместо этого переходя к каждомуиз них один за другим?Структура списка показана ниже: str (t)
List of 50
$ : Named num 0.09
..- attr(*, "names")= chr "D"
$ : num 0.813
$ : chr "two-sided"
$ : chr "Two-sample Kolmogorov-Smirnov test"
$ : chr "as.vector(df[i, ]) and as.vector(dft)"
$ : Named num 0.11
..- attr(*, "names")= chr "D"
$ : num 0.581
$ : chr "two-sided"
$ : chr "Two-sample Kolmogorov-Smirnov test"
$ : chr "as.vector(df[i, ]) and as.vector(dft)"
$ : Named num 0.09
..- attr(*, "names")= chr "D"
Я вижу, что длина моего списка
length(t)
[1] 377930
Я хочуизвлекать каждые две данные и оставлять остальные в кадре данных.
Мне это нравится вручную
c(t[[1]],t[[2]])
c(t[[6]],t[[7]])
c(t[[11]],t[[12]])
c(t[[21]],t[[22]])
c(t[[26]],t[[27]])
c(t[[31]],t[[32]])
c(t[[36]],t[[37]])
Есть ли лучший способ извлечь данные из списка, как указано выше?
Я тоже пытался сделать это, используя следующеебезуспешно
result<- data.frame(matrix(NA, nrow = length(t), ncol = 1))
m <- seq(1,length(t),by=5)
for (i in seq_along(m)){
result[[i]] = c(t[[i]])
if ( i*2 > length(t) ){
break
}
}