R中的多个记录

时间:2010-06-25 16:14:03

标签: r

我希望重新编码大量的变量,并且我可以使用某种循环来实现这一点。抛出我的是如何以编程方式命名每个变量(我只想保留var名称并附加“.rc”。

这是一个例子。假设我有一组变量,var.1到var.5。我期待在我的数据帧中创建一个新变量var.1.rc< - var.1 / sum(var.1到var1.5)。我会对下一个变量做同样的事情,依此类推。

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

有可能吗?最好的办法吗?任何帮助将不胜感激!

此致

布洛克

2 个答案:

答案 0 :(得分:9)

如果我理解正确,实际上有一种非常简单的方法可以做到这一点。假设您的原始数据框称为dat,您可以这样做:

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

答案 1 :(得分: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))
}