as.list.Date(R 编程语言)中的潜在错误
Potential bug in as.list.Date (the R programming language)
在我看来,以下内容对于任何矢量类型都应该是正确的。
all(names(as.list(x)) == names(x))
我这么说是因为我尝试了几种原子类型并且它是合理的。
但是日期:
> 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 还是我思维中的 bug?
PS:我有解决方法,谢谢
您的示例似乎也因某些因素而失败
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
所以这不会发生在日期上。在这种情况下,我不愿意将其称为错误,因为我不相信任何特定的行为都与任何地方记录的名称一样。然而不幸的是,与数字或字符向量相比,结果不一致。
在我看来,以下内容对于任何矢量类型都应该是正确的。
all(names(as.list(x)) == names(x))
我这么说是因为我尝试了几种原子类型并且它是合理的。
但是日期:
> 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 还是我思维中的 bug?
PS:我有解决方法,谢谢
您的示例似乎也因某些因素而失败
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
所以这不会发生在日期上。在这种情况下,我不愿意将其称为错误,因为我不相信任何特定的行为都与任何地方记录的名称一样。然而不幸的是,与数字或字符向量相比,结果不一致。