r中两列之间的间隔(以月为单位)

r中两列之间的间隔(以月为单位),r,intervals,R,Intervals,我有这些数据 "code";"min";"max" "CM106";2016-12-01;2018-08-01 "CM107";2017-10-01;2019-11-01 "CM109";2017-01-01;2019-02-01 "CM113";2018-02-01;2019-03-01 "CM114";2016-10-01;2017-12-01 "CM118";2018-04-01;2018-11-01 "CM121";2018-05-01;2020-02-01 "CM126";2018-0

我有这些数据

"code";"min";"max"
"CM106";2016-12-01;2018-08-01
"CM107";2017-10-01;2019-11-01
"CM109";2017-01-01;2019-02-01
"CM113";2018-02-01;2019-03-01
"CM114";2016-10-01;2017-12-01
"CM118";2018-04-01;2018-11-01
"CM121";2018-05-01;2020-02-01
"CM126";2018-08-01;2018-11-01
"CM129";2017-01-01;2018-04-01
"CM131";2018-09-01;2020-05-01
"CM144";2018-02-01;2019-11-01
"CM150";2018-10-01;2019-04-01
"CM153";2018-05-01;2018-09-01
"CM154";2016-05-01;2019-06-01
日期的格式:年-月-日

我想创建一个新列,其最小列和最大列之间的间隔以月为单位

我试图遵循这个答案,但没有成功

我明白了:

间隔[,2:3:=lappy.SD,as.IDate,格式=%Y.%m.%d,.SDcols=2:3]

[.tbl_dfintervalos,:=2:3,lapply.SD,as.IDate中出错,格式=%Y.%m.%d,:
未使用的参数。SDcols=2:3

1。创建可复制的最小示例

df <- structure(list(c = c("CM106", "CM107", "CM109", "CM113", "CM114", "CM118", "CM121", "CM126", "CM129", "CM131", "CM144", "CM150", "CM153", "CM154"), 
                     min = c("2016-12-01", "2017-10-01", "2017-01-01", "2018-02-01", "2016-10-01", "2018-04-01", "2018-05-01", "2018-08-01", "2017-01-01", "2018-09-01", "2018-02-01", "2018-10-01", "2018-05-01", "2016-05-01"),
                     max = c("2018-08-01", "2019-11-01", "2019-02-01", "2019-03-01", "2017-12-01", "2018-11-01", "2020-02-01", "2018-11-01", "2018-04-01", "2020-05-01", "2019-11-01", "2019-04-01", "2018-09-01", "2019-06-01")),
                class = "data.frame", row.names = c(NA, -14L))
计算差异:

df$diff_days <- df$max - df$min
df$diff_months <- as.numeric(df$diff_days) /(365.25/12)
计算差异:

df$diff_days <- df$max - df$min
df$diff_months <- as.numeric(df$diff_days) /(365.25/12)
df$diff_月为:


1.创建可复制的最小示例

df <- structure(list(c = c("CM106", "CM107", "CM109", "CM113", "CM114", "CM118", "CM121", "CM126", "CM129", "CM131", "CM144", "CM150", "CM153", "CM154"), 
                     min = c("2016-12-01", "2017-10-01", "2017-01-01", "2018-02-01", "2016-10-01", "2018-04-01", "2018-05-01", "2018-08-01", "2017-01-01", "2018-09-01", "2018-02-01", "2018-10-01", "2018-05-01", "2016-05-01"),
                     max = c("2018-08-01", "2019-11-01", "2019-02-01", "2019-03-01", "2017-12-01", "2018-11-01", "2020-02-01", "2018-11-01", "2018-04-01", "2020-05-01", "2019-11-01", "2019-04-01", "2018-09-01", "2019-06-01")),
                class = "data.frame", row.names = c(NA, -14L))
计算差异:

df$diff_days <- df$max - df$min
df$diff_months <- as.numeric(df$diff_days) /(365.25/12)
计算差异:

df$diff_days <- df$max - df$min
df$diff_months <- as.numeric(df$diff_days) /(365.25/12)
df$diff_月为:


显示您使用的命令显示您使用的命令如何使用参考SO问题中的答案:df$diff_months使用参考SO问题中的答案:df$diff_months