r - 如何在数字序列的循环内的赋值运算符的两侧使用paste0?

标签 r

我有一个包含不同城市名称的字符向量。

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

我想将每个城市名称存储在单独的字符向量中,我可以这样做:

name_1 <- names[1]
name_2 <- names[2]

但是,我宁愿使用循环,我尝试过:

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

这给了我一条错误消息:

Error in paste0("name_", i) <- paste0("names[", i, "]") : 
  target of assignment expands to non-language object

如何解决这个问题?在我的真实数据中,我有数百个城市名称,这就是为什么我想使用循环或任何其他技术来避免我为每个城市名称编写一行新代码。

最佳答案

paste0 在这里是一个转移注意力的事情; RHS 上不需要它。函数assign允许将变量作为字符串赋值:

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

一般不建议这样做。在这种特殊情况下,人们可以简单地通过 names[i] 而不是 names_i 来引用相同的值,但您的用例可能会有所不同。

关于r - 如何在数字序列的循环内的赋值运算符的两侧使用paste0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76411601/

相关文章:

r - 为数据帧列表中的每个数据帧中的每个列名添加前缀 R

python - 将数据扩展到新列进行分组

正则表达式删除字母和点的组合

r - 如何分离一串字符并将其作为向量在 R 中读取?

r - R 中二元运算符错误的非数字参数

r - testthat:一次期望错误和变量值?

R:使用 jarowinkler 进行字符串模糊匹配

R:来自 p.adjust (FDR) 的意外结果

r - 控制 map 图例中的值范围

读取带有日期和数字的 csv