2010-06-25 74 views
0

我正在寻找重新编码大量变量,并且我可能会使用某种循环来完成此操作。什么引发我是如何以编程方式命名每个变量(我只想保留var名称并追加“.rc”。R中的多个重新编码

这里是一个例子,假设我有一组变量,var.1到var。 5.我正在寻找在我的数据框中创建一个新的变量var.1.rc < - var.1/sum(var.1 to var1.5)。对于下一个变量,下一个变量也是如此,依此类推。

我是新于R,但是这将是一个巨大的进步对我来说。

是否有可能。最好的办法做到这一点?任何帮助将非常感激!

问候,

Brock

回答

9

如果我正确理解你,实际上有一个很简单的方法来做到这一点。假设您的原始数据帧被称为dat,您可以这样做:

dat.rc <- dat/rowSums(dat) 
names(dat.rc) <- paste(names(dat), ".rc", sep="") 
dat <- data.frame(dat,dat.rc) 
+0

一个优雅的方法,我必须承认... =) – aL3xa 2010-06-25 22:51:53

2

您可以尝试以下循环。

在这里,eval(parse(text =“”))允许您评估一个粘贴在一起的字符串,该字符串包含表达式的各种静态和动态部分以创建每个新变量。

for (i in 1:5) { 
X<-paste("var.",i,".rc<-var.",i,"/(var.1+var.2+var.3+var.4+var.5)",sep="") 
eval(parse(text=X)) 
}