20

我是 R 语言的新手,我还有很多东西要学。我有一个WJ 元素列表,我想用循环重命名它的元素,即W[[i]]with等等。我能怎么做?WiW[[1]]W1

4

3 回答 3

21
names(W) <- paste0("W", seq_along(W))

应该做的伎俩。

请注意,这paste0是在 R 2.15 中作为paste(..., sep = "", collapse). 如果您使用的是早期版本的 R,您可以使用以下方法实现相同的目的paste

names(W) <- paste("W", seq_along(W), sep = "")
于 2012-10-21T11:33:42.737 回答
15

或者,您可以使用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"
于 2012-10-21T11:56:30.460 回答
0

purrr使用@Quentin 的数据的解决方案:

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"
于 2020-11-10T14:57:00.993 回答