如何通过R [closed]中的向量创建变量

cvxl0en2  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(110)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
6小时前关门了。
Improve this question
我正在使用RStudio 2022.12.0,我想通过字符串向量创建变量名。
我的向量是:

names <- c("John", "Mike", "Tom", "Ben", "Nathalia", "Stephanie")

我试着用一个外观从向量中的每个名字中创建一个可变的名字。

for (x in names)
{x <- print(paste("The name is", x))}

这将产生以下错误消息:
一个二个一个一个
它打印:

\[1\] "The name is John"

\[1\] "The name is Mike"

\[1\] "The name is Tom"

\[1\] "The name is Ben"

\[1\] "The name is Nathalia"

\[1\] "The name is Stephanie"

但我没有得到6个变量名为约翰,迈克,...,Stepganie。

如果有人能帮助我,我会很高兴。
谢谢

for (x in names){
      x <- print(paste("The name is", x))
    }

我希望能得到

John <- c("The name is John")
laawzig2

laawzig21#

正如@akrun所说,你没有正确地索引你的循环,他正确的建议是给予你一个长度为6的变量x,每个变量都有“The name is whatever name”。但是,如果你真的想要这样的东西:

John <- c("The name is John")

你可以使用assign把名字输出为全局环境中的一个对象,你可以在同一个循环中完成这两件事:

nnames <- c("John", "Mike", "Tom", "Ben", "Nathalia", "Stephanie")

x <- c()
for (i in nnames){
    x[i]<- paste("The name is", i)
    assign(i, x[i])
}
#test
x
John
Tom

注我将names改为nnames,因为在R中以固有函数命名不是一个好习惯(names已经是一个基本R函数)

相关问题