[英]passing a string as a data frame column name
我有一個名為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代碼開頭只改變一次'目標'。 如何才能做到這一點?
我有時通過使用字符串來引用列來完成很多工作。 它的工作原理如下:
> 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
)。
如果您詢問在R中使用引用 ,則不可能。
但是,如果您詢問是否按名稱獲取未明確給出的列,則可以使用[
運算符,如下所示:
theNameOfColumnIwantToGetSummaryOf<-"col3"
summary(data.df[,theNameOfColumnIwantToGetSummaryOf])
......或者那樣:
myIndexOfTheColumnIwantToGetSummaryOf<-3
summary(data.df[,sprintf("col%d",myIndexOfTheColumnIwantToGetSummaryOf)])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.