首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么`a‘方法要删除向量名称,有没有办法解决这个问题?

为什么`a‘方法要删除向量名称,有没有办法解决这个问题?
EN

Stack Overflow用户
提问于 2016-01-07 13:00:06
回答 1查看 420关注 0票数 20

基本上,我正在尝试保留一个名为dates的向量,其中包含在我的分析中经常出现的特殊Dates,比如2016年新年和2015年7月4日。我希望能够通过名称而不是健壮性索引来提取,例如,dates["nyd"]获取新年,dates["ind"]获取7月4日。

我认为这会很简单:

代码语言:javascript
复制
dates <- as.Date(c(ind = "2015-07-04", nyd = "2016-01-01"))

as.Date已经去掉了这些名字:

代码语言:javascript
复制
dates
# [1] "2015-07-04" "2016-01-01"

这并不是说不能给Date矢量命名(这会很奇怪,因为它们基本上是专门解释的integer):

代码语言:javascript
复制
setNames(dates, c("ind", "nyd"))
#          ind          nyd 
# "2015-07-04" "2016-01-01" 

不幸的是,没有办法直接声明Date向量(据我所知?),特别是在不知道日期的底层整数值的情况下。

探索这一点,似乎这是as*类函数的标准实践:

代码语言:javascript
复制
as.integer(c(a = "123", b = "436"))
# [1] 123 436

as(c(a = 1, b = 2), "character")
# [1] "1" "2"

这是有原因的吗?在?as或我见过的任何其他帮助页面中都没有提到名称的丢失。

更广泛地说,有没有一种方法(使用as*之外的其他方法)来确保对象的名称在转换过程中不会丢失?

当然,一种方法是编写像as.Date.named这样的自定义函数,或者创建一个带有相关方法的自定义类as.named,但如果没有这样的东西,我会感到惊讶,因为这似乎应该是一个非常常见的操作。

如果重要的话,我在3.2.2。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34647674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档