我有一个包含不同城市名称的字符向量。
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/