as.list.Date(R编程语言)中的潜在错误

时间:2015-02-24 02:09:36

标签: r list date type-conversion

在我看来,对于任何矢量类型都应该如此。

all(names(as.list(x)) == names(x))

我之所以这么说,是因为我尝试了几种原子类型,因为它是合理的。

但是有了Date:

> dd = as.Date(c("1950-01-01", "2050-01-01" ))
> names(dd)  = c("from", "to")
> dd
        from           to 
"1950-01-01" "2050-01-01" 
> as.list(dd)
[[1]]
        from 
"1950-01-01" 

[[2]]
          to 
"2050-01-01" 
你怎么看? R bug还是我的想法中的错误?

PS:我有一个解决方法,谢谢

1 个答案:

答案 0 :(得分:3)

你的例子似乎也失败了因素

x <- factor(c("one","two"))
names(x) <- c("a","b")
x

#   a   b 
# one two 
# Levels: one two

as.list(x)

# [[1]]
#   a 
# one 
# Levels: one two
# 
# [[2]]
#   b 
# two 
# Levels: one two

也是原子类型

is.atomic(x)
# [1] TRUE

因此日期不会发生这种情况。在这种情况下,我不愿意将其称为一个错误,因为我不相信任何特定的行为都会在任何地方记录下来。然而,遗憾的是,与数字或字符向量相比,结果不一致。