更多“感觉应该是”简单的东西,今天似乎在逃避我。提前感谢您的帮助。
在一个循环中,在一个函数中,我试图添加一个列,并根据公式命名它。
我可以绑定一列,其名称取自绑定对象:data<-cbind(data,bothdata)
我可以绑定一列并手动命名绑定的对象:data<-cbind(data,newname=bothdata)
我可以绑定一个作为方程式乘积的列并手动命名绑定对象:data<-cbind(data,newname2=bothdata-1)
或者另一种方式:data <- transform(data, newColumn = bothdata-1)
我不能做的是让名字成为公式的产物。我的实际公式派生示例名称是paste("E_wgt",rev(which(rev(Esteps) == q))-1,"%")
& equation for column: baddata - q
。
一个更简单的:data<-cbind(data,paste("magic",100,"beans")=bothdata-1)
. 这失败了,因为即使在前面的示例中没问题,cbind
也没有预料到。=
同样失败transform
。
我的第一个想法是assign
,虽然我已经成功地使用它来创建以论坛命名的对象,但我看不出如何让它适用于以公式命名的列。
如果我使用中间步骤将命名公式放入对象容器中,则使用它,例如:
name <- paste("magic",100,"beans")
data<-cbind(data,name=bothdata-1)
列名是“名称”而不是“magic100beans”。如果我assign
将方程结果为一个以公式命名的对象:
assign(paste("magic",100,"beans"),bothdata-1)
然后尝试通过 cbind get
:
data<-cbind(data,get(paste("magic",100,"beans")))
该列称为“get(paste("magic",100,"beans"))"。嘘!有什么想法吗?我突然想到我可以cbind
单独做colnames(data)[ncol(data)] <- paste("magic",100,"beans"))
,我想我现在会接受,但仍然有兴趣找到是否有直接的方法。
谢谢。