将向量的值与第一个向量进行比较会返回NA值

时间:2019-04-03 12:21:13

标签: r loops

我正在尝试将向量的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 个答案:

答案 0 :(得分:0)

我们不需要循环,因为操作已向量化

test <- mydataframe[,3] - mydataframe[,3][1]

关于循环问题,它仅循环遍历数据集的一行,即最后一行(nrow)。相反,它可以是seq_len(nrow(mydataframe))