数据帧中的函数比较两列

时间:2014-07-09 10:25:30

标签: r dataframe as.date

我有一个包含三列的数据框。我想应用一个函数来比较第二列和第三列,我的函数将创建一个新列。 举个例子:

vin <- c("vin1", "vin2", "vin3", "vin4")
date.fin.obs <- rep(as.Date("2014-07-04"), length(vin))
date.fin <- c(as.Date("2014-07-04"), as.Date("2013-03-21"), as.Date("2013-07-06"),
             as.Date("2014-07-04"))
df <- data.frame(vin, date.fin.obs, date.fin)

CumulSurvivants <- function(x, y){
#   y <- length(x)
  x.num <- as.numeric(x)
  y.num <- as.numeric(y)

#   i <- length(x)
  i <- 0
  if(x.num == y.num){
    return(i)
  }else{
    return(i+1)
  }


}

CumulSurvivants(x = df$date.fin[2], y = df$date.fin.obs[4]) 

似乎有效,但我想逐行比较两列,并在新列中写出我的函数的结果。

提前致谢!

1 个答案:

答案 0 :(得分:1)

要计算日期差异,您只需使用

即可
df$difference <- date.fin.obs - date.fin

导致

   vin date.fin.obs   date.fin difference
1 vin1   2014-07-04 2014-07-04     0 days
2 vin2   2014-07-04 2013-03-21   470 days
3 vin3   2014-07-04 2013-07-06   363 days
4 vin4   2014-07-04 2014-07-04     0 days

或者,代替简单的&#34;减去&#34;,以相同的方式使用任何其他更专业的日期/时间函数,可能使用日期/时间格式。另请查看?strptimehttp://www.statmethods.net/input/dates.html