我有一个名为data.df的数据框,其中包含各种列,例如col1,col2,col3 .... col15。数据框没有特定的类属性,但任何属性都可能用作类变量。我想使用一个名为target的R变量,它指向要被视为类的列号,如下所示:
target<-data.df$col3
然后使用该字段(目标)作为几个学习者的输入,例如PART和J48(来自包RWeka):
part<-PART(target~.,data=data.df,control=Weka_control(M=200,R=FALSE))
j48<-J48(target~.,data=data.df,control=Weka_control(M=200,R=FALSE))
我的想法是能够在我的R代码开头只更改一次'目标'。怎么办呢?
答案 0 :(得分:16)
我有时会通过使用字符串来引用列来完成很多工作。它的工作原理如下:
> df <- data.frame(numbers=seq(5))
> df
numbers
1 1
2 2
3 3
4 4
5 5
> df$numbers
[1] 1 2 3 4 5
> df[['numbers']]
[1] 1 2 3 4 5
然后,您可以将变量target
作为字符串的所需列的名称。我不知道RWeka,但许多库如ggplot可以对列进行字符串引用(例如aes_string
参数而不是aes
)。
答案 1 :(得分:6)
如果您询问在R中使用references,则无法进行。
但是,如果您询问是否未明确指定列名,则可以使用[
运算符,如下所示:
theNameOfColumnIwantToGetSummaryOf<-"col3"
summary(data.df[,theNameOfColumnIwantToGetSummaryOf])
...或者那样:
myIndexOfTheColumnIwantToGetSummaryOf<-3
summary(data.df[,sprintf("col%d",myIndexOfTheColumnIwantToGetSummaryOf)])