0

我想要做

am<-0
an<-0
bm<-0
bn<-0
cm<-0
cn<-0
.....
..... 

和儿子一直到zn。有没有办法不用写这么多

4

2 回答 2

3

您可以使用 assign 按名称创建变量:

for (first in  letters[1:3]) {
    for (second in  letters[13:14]) {
        assign(paste(first, second, sep=""), 0)
    }
 }

可能更好的方法是使用这样的数据框:

df <- data.frame(
    name=paste(rep(letters[1:3], each=2), rep(letters[13:14], 3), sep=""),
    value=0
)
于 2013-09-28T07:31:12.843 回答
0

如果您已经将您定义为一个单独的变量,则将它们聚合到向量中的一种方法是:

vars <- unlist(mget(ls(pattern='^[a-z](m|n)$')))

然后很容易像这样初始化你的向量:

vars <- 0 
于 2013-09-28T08:07:07.413 回答