在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,谢谢你!