R语言 如何循环字符向量的名称?

y1aodyip  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(89)

我有两个字符向量,其中包括不同的城市名称。

names <- c("Tokyo","Bangkok")

for (i in 1:2) {
  assign(paste0("name_", i), names[i])
}

基于这两个字符向量,我想将城市名称存储在一个列表中,我可以通过以下方式实现:

names_list <- list(name_1, 
                   name_2)

然而,我更喜欢使用循环,我尝试了:

for (i in 1:2) {
  names_list <- list(paste0("name_", i))
}

然而,正如你所看到的,这并没有给予预期的结果。
我该如何解决这个问题?
顺便说一句,这是一个后续问题的早期问题:
如何在一个数字序列的循环中在赋值运算符的两侧使用paste0?

piwo6bdm

piwo6bdm1#

这是你要找的吗?

# data
names <- c("Tokyo","Bangkok")

# initialise list
nm_ls <- vector("list")

#loop
for (i in 1:2) {
  nm_ls[[paste0("name_", i)]] <-  names[i]
}
#result
nm_ls
#> $name_1
#> [1] "Tokyo"
#> 
#> $name_2
#> [1] "Bangkok"

创建于2023-06-07,使用reprex v2.0.2

g6ll5ycj

g6ll5ycj2#

首先创建一个空列表,然后get向量,并使用索引[附加到列表中。

name_1
#> [1] "Tokyo"
name_2
#> [1] "Bangkok"

names_list <- list()

for (i in 1:2) {
  names_list[i] <- get(paste0("name_", i))
}

names_list
#> [[1]]
#> [1] "Tokyo"
#> 
#> [[2]]
#> [1] "Bangkok"

相关问题