l1 <- list(a = 'FirstComponent', b= 'SecondComponent')
要将第一个组件从a
重命名为c
,我可以这样做:
names(l1) <- c('c', 'b')
或者这个:
names(l1)[1] <- c('c')
但不是这样:
names(l1[1]) <- c('c')
也不是这样:
names(l1[[1]]) <- c('c')
为什么第三和第四个代码示例不起作用?他们还尝试重命名R对象l1[1]
和l1[[1]]
。现场背后发生了什么?
=========以下是原始问题的一部分===========
R文档:可以通过一般规则更新名称属性的一部分:参见示例。这是有效的,因为那里的表达式被评估为
z <- "names<-"(z, "[<-"(names(z), 3, "c2"))
。
names(z)
中"[<-"(names(z), 3, "c2")
的返回值作为参数传递给下一个函数,即"[<-"
。