在R中,是否可以在不首先将该向量分配给变量名的情况下为向量的组件指定名称?通常的方法很明显:
z <- 1:3
names(z) <- c("a", "b", "c") #normal way
names(1:3) <- c("a", "b", "c") #throws an error
Run Code Online (Sandbox Code Playgroud)
第二种方式抛出"名称错误(1:3)< - c("a","b","c"):赋值目标扩展为非语言对象"
根据文档,表达式被评估为
z <- "names<-"(z,
"[<-"(names(z), 3, "c2"))’.
Run Code Online (Sandbox Code Playgroud)
所以没有震惊它不起作用,我只是想知道是否有一个解决方案.
理想情况下,有这样的东西是很好的:
names(z <- 1:3) <- c("a", "b", "c")
> z
a b c
1 2 3
Run Code Online (Sandbox Code Playgroud)
只是浪费空间把它放在两条不同的线上.
我有一个年周格式的字符串,如下所示:
weeks.strings <- c("2002-26", "2002-27", "2002-28", "2002-29", "2002-30", "2002-31")
Run Code Online (Sandbox Code Playgroud)
但是,将此字符转换为Date类会导致丢失星期标识符:
> as.Date(weeks.strings, format="%Y-%U")
[1] "2002-08-28" "2002-08-28" "2002-08-28" "2002-08-28" "2002-08-28"
[6] "2002-08-28"
Run Code Online (Sandbox Code Playgroud)
如上所示,格式转换为与今天日期连接的年份,因此有关原始周的任何信息都将丢失(例如,使用格式函数或strptime尝试强制回原始格式.
我在帮助组中找到的一个解决方案是指定星期几:
as.Date(weeks.strings, format="%Y-%u %U")
[1] "2002-02-12" "2002-02-19" "2002-02-26" "2002-03-05" "2002-01-02"
[6] "2002-01-09"
Run Code Online (Sandbox Code Playgroud)
但看起来这会导致不正确的周编号(与原始字符串不匹配).
任何指导将不胜感激.