Попробуйте:
set.seed(123)
sample_ <- sample(dist_SLA, size = 3)
sample_
[1] 4 3 6
dist_SLA <- c(1, 4, 9, 3, 4, 6)
Тогда это даст вам
dist_SLA==sample_
[1] FALSE FALSE FALSE FALSE FALSE TRUE
В то время как использование% в% дает:
dist_SLA %in% sample_
[1] FALSE TRUE FALSE TRUE TRUE TRUE
И
ifelse(dist_SLA %in% sample_, dist_SLA, 0)
[1] 0 4 0 3 4 6
Таким образом, ваш цикл, в зависимости от того, что вы хотите сохранить для дальнейшего использования, может выглядеть как
set.seed(123)
dist_SLA <- c(1, 4, 9, 3, 4, 6)
lm_ <- vector(mode = "list", length = length(dist_SLA))
fit_ <- vector(mode = "numeric", length = length(dist_SLA))
for(x in 1 : length(dist_SLA)){
sample_ <- sample(dist_SLA, size = x)
spi <- ifelse(dist_SLA %in% sample_, dist_SLA, 0)
lm_[[x]] <- lm(dist_SLA ~ spi)
fit_[x] <- summary(lm_[[x]])$r.squared
}