我正在尝试创建一个生成变量的循环。但我需要一种方法来使用输入法命名变量。在变量生成
中输入字符串名称的惯例是什么X = “变” Y = “重量” Z = “高度”
XY =膏(X,Y,月= “”) XZ =膏(X,Y,月= “”)
xy_one = 1:10 xy_two = 11:20
因此xy_one应该命名为VariableWeight_one 和xz_two应该是名称Variableheight_two
答案 0 :(得分:1)
真正的答案是:不要这样做。创建list
或dataframe
变量,将数据转储到相同的元素中,然后为这些元素指定名称,这样会更容易,也更有效率。在你的情况下,
mydata<- list()
mydata$VariableWeight_one <- xy_one
mydata$Variableheight_two <- xy_two
答案 1 :(得分:1)
同意Carl不要这样做,但我认为他的方法可以通过使用“[[”而不是“$”来改进。尝试:
myVars<-list()
x="Variable"; y="Weight"; z="Height"
myVars[[ paste(x,y,"_one", sep="")]] <- 1:10
myVars[[ paste(x,z,"_one", sep="")]] <- 11:20
如果你真的还想构建名字,我会写一个合适的补充:
x="Variable"; y="Weight"; z="Height"
assign( paste(x,y,"_one", sep=""), 1:10)
assign( paste(x,z,"_one", sep=""), 11:20)
ls(patt="Variable")
[1] "VariableHeight_one" "VariableWeight_one"
比较使用您的方法创建的第一个变量可能需要花费的努力(和语言迂回),以及从myVars中提取第一个元素的简单程度:
eval(parse( text=ls(patt="Variable")[1] ))
# [1] 11 12 13 14 15 16 17 18 19 20
myVars[[1]]
# [1] 1 2 3 4 5 6 7 8 9 10
(此外,它甚至不是正确的。)