Предположим, у меня есть набор данных
set2_data
, и в этом наборе данных есть 33 столбца.Моя главная цель - найти самое низкое ненулевое значение в каждом столбце, кроме первого.поэтому я пробовал следующие методы:
dade2 <- names(set2_data)[2:33]
for (i in 2:33) {
print(min(set2_data[dade2[i]]))
}
Приведенный выше код работал, но он включает 0. Итак, я попробовал это:
dade2 <- names(set2_data)[2:33]
for (i in 2:33) {
print(min(set2_data[dade2[i]][which(set2_data[dade2[i]]>0)]))
}
Если я хочу определить значения индивидуальноЯ могу использовать это:
min(set2_data[,1][which(set2_data[,1]!=0)])
, но это ужасно неэффективно, и мне интересно, почему это работает, а цикл выше нет?
Спасибо!