R stats - 生成增量变量

时间:2014-05-14 04:41:24

标签: r

我是R编程中的新手,遇到一个简单的问题,但找不到任何解决方案。

在其他编程语言中,可以在循环中生成递增命名的变量。这可能在R?怎么样?

例如,我想在每次循环完成时将操作的输出保存到新变量中:

for(i in 1:5) {
    var_[i] <- i + pi
}

通过这种方式,我最终会得到var_1var_2,...,var_5

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

你正在尝试的文字版本在R中通常被认为是不好的做法。

我们通常避免创建大量孤立的数据结构。将它们全部放在列表中然后设置它们的名称属性要清晰得多:

x <- vector("list",5)
for (i in seq_len(5)){
    x[[i]] <- i + pi
}

names(x) <- paste0("var_",1:5)

然后你会通过以下内容来引用它们:

x[["var_1"]]

答案 1 :(得分:2)

虽然这在R中是可能的,但是非常气馁。最好使用命名列表或向量或累积结果。例如,您可以将它们存储为矢量。

myvar<-1:5+pi
# myvar[1] == 4.141593
# myvar[5] == 8.141593

或者如果你想创建一个列表,你可以使用

myvar <- lapply(1:5, function(x) {x+pi})
names(myvar)<-paste("var", 1:5, sep="_")
# myvar[["var_1"]] == myvar[[1]] == 4.141593

但如果你真的需要创建一堆变量(而你没有),你可以使用assign()函数