簡體   English   中英

將字符串作為數據框列名稱傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM