![](/img/trans.png)
[英]How to generally refer to the last generated (<-) object (in my case a data.frame) in R?
[英]Is there a generic way to refer to the last column of an R data frame in a formula object?
我想编写一个通用脚本来查找有关最后一列的一组功能的信息增益。 例如,在一个由26列矩阵构成的数据帧中,我会写:
information.gain(V26~.,table)
问题在于公式V26〜。 没有明显的通用形式。 我的第一个想法是尝试这样做:
> nms <- colnames(table)
> nms[length(nms)]
[1] "V26"
> information.gain(nms[length(nms)]~., table)
Error in model.frame.default(formula, data, na.action = NULL) :
variable lengths differ (found for 'V1')
由于nms是字符串的向量,因此这似乎是错误的。 有没有一种方法可以将名称强制转换为可以包含在公式中的内容?
这是使用伪数据的简单解决方案
DF <- data.frame(matrix(runif(260), ncol = 26))
names(DF) <- paste0("V", seq_len(ncol(DF)))
在这里,我使用tail()
来选择DF
最后一列的名称,并从那里构建公式。
f <- as.formula(paste(tail(names(DF), 1), "~ ."))
> f
V26 ~ .
修改以适合该问题。 您可以将数据帧的最后一列放入单独的向量中,然后将其与函数关联。 例如,这是使用列数的解决方案:
last_col <-df [,ncol(df)]
函数(last_col〜。,等等,等等)
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.