【发布时间】:2021-05-10 22:58:03
【问题描述】:
我正在尝试将 Date 对象分别存储在向量和 data.frame 中。
不过,似乎有些麻烦。当我将对象分配给向量时,它似乎被转换为数字数据类型。以下代码
print(as.Date("11-Jan-2011",format="%d-%b-%Y"))
test_v <-c()
test_v[1]<-as.Date("11-Jan-2011",format="%d-%b-%Y")
print(test_v)
print(str(test_v))
给出输出
[1] "2011-01-11"
[1] 14985
num 14985
NULL
类似地,当我尝试将 Date 对象分配给 data.frame 的特定行和列时,它再次被转换,但这次转换为字符。
test_df <- data.frame(a=c(1:3))
test_df$b <- 999
test_df[1,]$b <- "any string"
test_df[2,]$b <- 2
test_df[3,]$b <- as.Date("11-Jan-2011",format="%d-%b-%Y")
print(test_df$b)
str(test_df$b)
str(test_df[3,]$b)
结果
[1] "any string" "2" "14985"
chr [1:3] "any string" "2" "14985"
chr "14985"
但是,将日期对象分配给 data.frame 的整个列似乎可行。
test_df$c <- as.Date("11-Jan-2011",format="%d-%b-%Y")
str(test_df)
结果
'data.frame': 3 obs. of 3 variables:
$ a: int 1 2 3
$ b: chr "any string" "2" "14985"
$ c: Date, format: "2011-01-11" "2011-01-11" "2011-01-11"
发生了什么事?
【问题讨论】: