在dataframe上使用apply时访问上一行

在dataframe上使用apply时访问上一行,r,apply,R,Apply,我有一个大的data.frame,我想对它进行测试,看看特定列中的每一行是否等于该列中的前一行加上一些增量。该列中的数据属于POSIXct类。我正在为循环使用,但这非常慢,因此我想使用apply函数编写代码。这是我的 for (i in 2:100) { test$test[i] <- test$date[i-1]+0.5*60*60 == test$date[i] } 如何将其转换为apply函数?使用diff计算差异。无应用或用于所需 test$test = c(NA,

我有一个大的
data.frame
,我想对它进行测试,看看特定列中的每一行是否等于该列中的前一行加上一些增量。该列中的数据属于
POSIXct
类。我正在为循环使用
,但这非常慢,因此我想使用
apply
函数编写代码。这是我的

for (i in 2:100) {
     test$test[i] <- test$date[i-1]+0.5*60*60 == test$date[i]
 }

如何将其转换为
apply
函数?

使用
diff
计算差异。无
应用
用于
所需

test$test = c(NA, as.double(diff(test$date), units = "mins") == 30)

我们可以转换difftime单位,因此不需要使用
0.5*60*60

使用
diff
来计算差异。无
应用
用于
所需

test$test = c(NA, as.double(diff(test$date), units = "mins") == 30)

我们可以转换difftime单位,因此我们不需要
0.5*60*60

您还可以移动行并进行比较

test$test[2:nrow(test)] <- (test$date[1:(nrow(test) - 1)] + 0.5*60*60) == 
                            test$date[2:nrow(test)]

test$test[2:nrow(test)]您还可以移动行并进行比较

test$test[2:nrow(test)] <- (test$date[1:(nrow(test) - 1)] + 0.5*60*60) == 
                            test$date[2:nrow(test)]

test$test[2:nrow(test)]这里的
NA
的目的是什么?@VictorMaxwell我有
NA
,原因与循环从2开始相同。对于
n
数字,存在
n-1
差异,因此我们需要填充结果,使其具有相同的长度。@Gregor只是想澄清一下。
diff
是否使用
单位
。e、 g.`v1-Huh-结果不是这样。见编辑@VictorMaxwell,谢谢你!
NA
的目的是什么?@VictorMaxwell我有
NA
,原因与循环从2开始相同。对于
n
数字,存在
n-1
差异,因此我们需要填充结果,使其具有相同的长度。@Gregor只是想澄清一下。
diff
是否使用
单位
。e、 g.`v1-Huh-结果不是这样。见编辑@VictorMaxwell,谢谢你!