FOR循环计算R中日期的差异
FOR loop to calculate difference on dates in R
我正在尝试计算数据框中两个日期之间的天数差异,并将其保存在同一数据框的另一列中,称为滞后。这是我的代码,但它不起作用:
Daily_Streamflow$Date
Daily_Streamflow$lag[1] <- 0
j <- 2
for (j in length(Daily_Streamflow$Date)) {
Daily_Streamflow$lag[j] <- as.numeric(difftime(Daily_Streamflow$Date[j],Daily_Streamflow$Date[j-1], unit=c("days")))
j <- j + 1
}
这是我的数据框的样子:
当我将第一天的差异 Daily_Streamflow$lag[1]
设置为 0 时,所有剩余值都设置为 0。如果我将此值保留为空,则该列的所有值都设置为 NA
.看起来代码把第一个滞后的值放到了所有的列中,省略了for里面的函数,虽然j值增加并且循环运行。
由于您没有为我们提供数据,所以您需要自行测试:
Daily_Streamflow$Date
Daily_Streamflow$lag[1] <- 0
for (j in 2:length(Daily_Streamflow$Date)) { # add 2: to create a sequence
Daily_Streamflow$lag[j] <- as.numeric(difftime(Daily_Streamflow$Date[j],Daily_Streamflow$Date[j-1], units=c("days")), units = "days") # change 'unit' to 'units' and add 'units' attribute to the 'as.numeric' function as well
j <- j + 1
}
我正在尝试计算数据框中两个日期之间的天数差异,并将其保存在同一数据框的另一列中,称为滞后。这是我的代码,但它不起作用:
Daily_Streamflow$Date
Daily_Streamflow$lag[1] <- 0
j <- 2
for (j in length(Daily_Streamflow$Date)) {
Daily_Streamflow$lag[j] <- as.numeric(difftime(Daily_Streamflow$Date[j],Daily_Streamflow$Date[j-1], unit=c("days")))
j <- j + 1
}
这是我的数据框的样子:
当我将第一天的差异 Daily_Streamflow$lag[1]
设置为 0 时,所有剩余值都设置为 0。如果我将此值保留为空,则该列的所有值都设置为 NA
.看起来代码把第一个滞后的值放到了所有的列中,省略了for里面的函数,虽然j值增加并且循环运行。
由于您没有为我们提供数据,所以您需要自行测试:
Daily_Streamflow$Date
Daily_Streamflow$lag[1] <- 0
for (j in 2:length(Daily_Streamflow$Date)) { # add 2: to create a sequence
Daily_Streamflow$lag[j] <- as.numeric(difftime(Daily_Streamflow$Date[j],Daily_Streamflow$Date[j-1], units=c("days")), units = "days") # change 'unit' to 'units' and add 'units' attribute to the 'as.numeric' function as well
j <- j + 1
}