as.Date 抛出行号不匹配,但所有向量的长度都相同
as.Date is throwing a row number mismatch, but all vectors are same length
以下 (CSV) 数据集在 2000 年 7 月 1 日到 2014 年 12 月 31 日期间每天有 3133 行费用:
head(d_exp_0014)
2000 7 6 792078.595 9
2000 7 7 140065.5 9
2000 7 11 190553.2 9
2000 7 12 119208.65 9
2000 7 16 1068156.293 9
2000 7 17 0 9
2000 7 21 457828.8033 9
2000 7 26 661445.0775 9
2000 7 28 211122.82 9
2000 8 2 273575.1733 8
这里的列是年、月、日、费用和计数(每个月有多少天有费用)。
我正在尝试进行到 2015 年底的预测,并且需要处理这些混乱的日期列,以便我可以使用 dplyr 对 xts (?) 对象进行切片和切块。 ISOdate 和 as.Date 函数抛出此错误:
> exp <- data.frame(data = d_exp_0014, Date = as.Date(paste(Year, Month, Day), format = "m%/d%/Y%"), Amount = Amount, Count = Count, t = c(1:3133))
Error in data.frame(data = d_exp_0014, Date = as.Date(paste(Year, Month, :
arguments imply differing number of rows: 3133, 3134
> length(d_exp_0014$Year)
[1] 3133
> length(d_exp_0014$Month)
[1] 3133
> length(d_exp_0014$Day)
[1] 3133
我做错了什么?我是否应该在 2000 年 7 月 1 日和 2014 年 12 月 31 日之间构建一个包含 5296 个连续日期的向量,并将我的 3133 行观察结果合并到此 table(从而有效地在 Amount 列中插入几天的“0”没有付款)?
几个错误(但不是来自 paste
):我猜你被教导使用 attach
。这可能是这个特定错误的来源。从
开始
detach(d_exp_0014)
d_exp_0014 <- cbind(d_exp_0014,
myDate = with(d_exp_0014,
as.Date(paste(Year, Month, Day, sep="/"),
format = "%Y/%m/%d") # note % first then letter
)
)
然后您可以根据需要添加更多列。
以下 (CSV) 数据集在 2000 年 7 月 1 日到 2014 年 12 月 31 日期间每天有 3133 行费用:
head(d_exp_0014)
2000 7 6 792078.595 9
2000 7 7 140065.5 9
2000 7 11 190553.2 9
2000 7 12 119208.65 9
2000 7 16 1068156.293 9
2000 7 17 0 9
2000 7 21 457828.8033 9
2000 7 26 661445.0775 9
2000 7 28 211122.82 9
2000 8 2 273575.1733 8
这里的列是年、月、日、费用和计数(每个月有多少天有费用)。
我正在尝试进行到 2015 年底的预测,并且需要处理这些混乱的日期列,以便我可以使用 dplyr 对 xts (?) 对象进行切片和切块。 ISOdate 和 as.Date 函数抛出此错误:
> exp <- data.frame(data = d_exp_0014, Date = as.Date(paste(Year, Month, Day), format = "m%/d%/Y%"), Amount = Amount, Count = Count, t = c(1:3133))
Error in data.frame(data = d_exp_0014, Date = as.Date(paste(Year, Month, :
arguments imply differing number of rows: 3133, 3134
> length(d_exp_0014$Year)
[1] 3133
> length(d_exp_0014$Month)
[1] 3133
> length(d_exp_0014$Day)
[1] 3133
我做错了什么?我是否应该在 2000 年 7 月 1 日和 2014 年 12 月 31 日之间构建一个包含 5296 个连续日期的向量,并将我的 3133 行观察结果合并到此 table(从而有效地在 Amount 列中插入几天的“0”没有付款)?
几个错误(但不是来自 paste
):我猜你被教导使用 attach
。这可能是这个特定错误的来源。从
detach(d_exp_0014)
d_exp_0014 <- cbind(d_exp_0014,
myDate = with(d_exp_0014,
as.Date(paste(Year, Month, Day, sep="/"),
format = "%Y/%m/%d") # note % first then letter
)
)
然后您可以根据需要添加更多列。