#r #loops
#r #циклы
Вопрос:
Я пытаюсь сравнить элементы i 1 вектора с первым элементом самого вектора.
У меня есть следующий фрейм данных:
snsr_dt snsr_ts value
2009-05-25 2009-05-25 08:00 0
2012-07-08 2012-07-08 08:00 96
2014-01-27 2014-01-27 08:00 0
2015-02-15 2015-02-15 08:00 298
2015-10-10 2015-10-10 08:00 260
2017-04-21 2017-04-21 08:00 402
Я попробовал следующий подход:
test<-c()
for (i in nrow(mydataframe)){
test[i]=dataframe[i,3]-dataframe[1,3]
}
Я получаю следующие результаты:
[1] NA NA NA NA NA 402
Что я делаю не так?
Комментарии:
1. Опечатка в
for
цикле,for (i in 1:nrow(mydataframe))
2. предполагая, что
value
это вектор столбца, который вы хотите сравнить:mydataframe$value - mydataframe$value[1]
Ответ №1:
Для этого нам не нужен цикл, поскольку операция векторизована
test <- mydataframe[,3] - mydataframe[,3][1]
Что касается проблемы с циклом, то выполняется только цикл по одной строке, то есть по последней строке ( nrow
) набора данных. Вместо этого это может быть seq_len(nrow(mydataframe))