繁体   English   中英

有没有通用的方法可以引用公式对象中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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM