&引用;as.Date.numeric(e)中的错误:';原产地';“必须提供”;添加行时

&引用;as.Date.numeric(e)中的错误:';原产地';“必须提供”;添加行时,r,date,R,Date,我有一个数据帧,df,如下所示: df date periodNumber value 1 2020-02-02 0 814 2 2020-02-09 0 1592 3 2020-02-09 1 1808 4 2020-02-16 0 2746 5 2020-02-16 1 2646 6 2020-02-16 2 2993 str(

我有一个数据帧,
df
,如下所示:

df
        date periodNumber  value
1 2020-02-02            0   814
2 2020-02-09            0  1592
3 2020-02-09            1  1808
4 2020-02-16            0  2746
5 2020-02-16            1  2646
6 2020-02-16            2  2993

str(df)
'data.frame':   6 obs. of  3 variables:
 $ date        : Date, format: "2020-02-02" "2020-02-09" "2020-02-09" "2020-02-16" ...
 $ periodNumber: int  0 0 1 0 1 2
 $ value       : num  814 1592 1808 2746 2646 2993
for(i in 1:nrow(df)){
  df[nrow(df)+1,] <- c(df$date[i]+1, df$periodNumber[i], df$periodNumber[i])
}
可以看出,
df$date
date
格式。我有一个for循环将行添加到此数据帧,如下所示:

df
        date periodNumber  value
1 2020-02-02            0   814
2 2020-02-09            0  1592
3 2020-02-09            1  1808
4 2020-02-16            0  2746
5 2020-02-16            1  2646
6 2020-02-16            2  2993

str(df)
'data.frame':   6 obs. of  3 variables:
 $ date        : Date, format: "2020-02-02" "2020-02-09" "2020-02-09" "2020-02-16" ...
 $ periodNumber: int  0 0 1 0 1 2
 $ value       : num  814 1592 1808 2746 2646 2993
for(i in 1:nrow(df)){
  df[nrow(df)+1,] <- c(df$date[i]+1, df$periodNumber[i], df$periodNumber[i])
}

for
循环中的
c
想要将这三个值强制转换为一种格式

?c
中,我们可以看到:

输出类型由层次结构NULL 实际上,我不确定在哪里可以对日期进行分类。有人可能会认为它会被强制为数字,但它是日期。因为没有提供
origin=
(应该在哪里定义它呢??),所以它会抛出一个错误

这其实很有趣,因为

c(1, as.Date("2020-01-01"))
# [1]     1 18262
但是

这至少是不一致的,可能是一个bug,我找不到任何文档

无论如何,使用
data.frame
允许多个类

for(i in 1:nrow(df)){
  df[nrow(df)+1,] <- data.frame(df$date[i]+1, df$periodNumber[i], df$periodNumber[i])
}
#          date periodNumber value
# 1  2020-02-02            0   814
# 2  2020-02-09            0  1592
# 3  2020-02-09            1  1808
# 4  2020-02-16            0  2746
# 5  2020-02-16            1  2646
# 6  2020-02-16            2  2993
# 7  2020-02-03            0     0
# 8  2020-02-10            0     0
# 9  2020-02-10            1     1
# 10 2020-02-17            0     0
# 11 2020-02-17            1     1
# 12 2020-02-17            2     2
for(1中的i:nrow(df)){
df[nrow(df)+1,]您能否提供
dput(head(df,3))
以便其他人可以进行测试?
df <- structure(list(date = structure(c(18294, 18301, 18301, 18308, 
18308, 18308), class = "Date"), periodNumber = c(0L, 0L, 1L, 
0L, 1L, 2L), value = c(814L, 1592L, 1808L, 2746L, 2646L, 2993L
)), row.names = c("1", "2", "3", "4", "5", "6"), class = "data.frame")