在我看来,对于任何矢量类型都应该如此。
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:我有一个解决方法,谢谢
答案 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
因此日期不会发生这种情况。在这种情况下,我不愿意将其称为一个错误,因为我不相信任何特定的行为都会在任何地方记录下来。然而,遗憾的是,与数字或字符向量相比,结果不一致。