我有一个名为data.df的数据框,其中包含各种列,例如col1,col2,col3 .... col15.数据框没有特定的类属性,但任何属性都可能用作类变量.我想使用一个名为target的R变量,它指向要被视为类的列号,如下所示:
target<-data.df$col3
Run Code Online (Sandbox Code Playgroud)
然后使用该字段(目标)作为几个学习者的输入,例如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))
Run Code Online (Sandbox Code Playgroud)
我的想法是能够在我的R代码开头只改变一次'目标'.如何才能做到这一点?
met*_*mit 19
我有时通过使用字符串来引用列来完成很多工作.它的工作原理如下:
> 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
Run Code Online (Sandbox Code Playgroud)
然后,您可以将变量target作为所需列的名称作为字符串.我不知道RWeka,但许多库如ggplot可以对列进行字符串引用(例如aes_string参数而不是aes).
如果您询问在R中使用引用,则不可能.
但是,如果您询问是否按名称获取未明确给出的列,则可以使用[运算符,如下所示:
theNameOfColumnIwantToGetSummaryOf<-"col3"
summary(data.df[,theNameOfColumnIwantToGetSummaryOf])
Run Code Online (Sandbox Code Playgroud)
......或者那样:
myIndexOfTheColumnIwantToGetSummaryOf<-3
summary(data.df[,sprintf("col%d",myIndexOfTheColumnIwantToGetSummaryOf)])
Run Code Online (Sandbox Code Playgroud)