给连接的变量赋值(在R中)



我试图将值分配给连接的变量名称。下面是一个示例:

for(sector in 1:4) {
for(letter in 1:2) {
if (letter == 1) {
letter = 'V'
}
else if (letter == 2) {
letter = 'A'
}

print(paste(toString(sector), letter, "_variable", sep = ""))

paste(toString(sector), letter, "_variable", sep = "") <- sector
}
}

基本上结果必须是:8个变量(1V_variable, 1A_variable, 2V_variable,…)以扇区(= number)作为值。

但是我得到以下错误:

找不到函数"paste " -">

你知道解决这个问题的方法吗?提前感谢!

我想你是在找assign-

for(sector in 1:4) {
for(letter in 1:2) {
if (letter == 1) {
letter = 'V'
}
else if (letter == 2) {
letter = 'A'
}
print(paste(toString(sector), letter, "_variable", sep = ""))
assign(paste(toString(sector), letter, "_variable", sep = ""), sector)
}
}

你需要使用带有反引号的变量名来访问它们,因为它以数字开头。

`1V_variable`
#[1] 1
`1A_variable`
#[1] 1

旁注-在全局环境中创建这么多变量不被认为是一个好的实践,尝试使用列表代替。

在你的循环中试试这个

newvarname = paste(toString(sector), letter, "_variable", sep = "")
eval(parse(text = paste0(newvarname, " = sector")))