Я думаю, что для использования return
вы должны определить функцию (на самом деле я удивлен, что вы не получите ошибку).Что происходит, так это то, что цикл выполняет все тесты так, как вы хотите, но перезаписывает их в одну и ту же переменную test
, поэтому в конце вы получите только последний результат.
Редактировать: На самом деле я проверил, и return
должен позволить вам выйти на первой итерации, получая, таким образом, только результат первого теста.
Один простой способ исправить это - создать, например,, вектор и затем добавьте каждый новый результат в ту же позицию, что и соответствующая строка:
test <- c()
for(i in 1:nrow(x)){
test[i] <- t.test(x[i, 1:5], x[i, 6:10])
}
Обратите внимание, что добавление к пустому вектору / списку довольно дорого, так как его конечная длина увеличивается, поэтому вы можете захотетьИнициализируйте его с NA, длина которых равна числу строк в кадре данных:
test <- rep (NA,nrow(x))