我是R语言的新手,我还有很多需要学习的东西。
我列出了W
个J元素,我想将其W[[i]]
元素重命名为Wi
,W[[1]]
和W1
依此类推,使用循环。我该怎么办?
答案 0 :(得分:20)
names(W) <- paste0("W", seq_along(W))
应该这样做。
请注意,paste0
在R 2.15中作为paste(..., sep = "", collapse)
的“稍高效”版本引入。如果您使用的是早期版本的R,则可以使用paste
:
names(W) <- paste("W", seq_along(W), sep = "")
答案 1 :(得分:14)
或者,您可以使用sprintf()
:
w<-list(a="give",b="me an",c="example")
names(w)<-sprintf("W%i",1:length(w))
如您所见,您不需要循环。
它应该做的工作。在此示例中,名称为W1,W2和W3
print(w)
$W1
[1] "give"
$W2
[1] "me an"
$W3
[1] "example"
答案 2 :(得分:0)
使用@Quentin数据的purrr
解决方案:
library(purrr)
w <- list(a = "give", b = "me an", c = "example") %>%
set_names(~paste0("W", 1:length(w)))
w
# $W1
# [1] "give"
# $W2
# [1] "me an"
# $W3
# [1] "example"