簡體   English   中英

R:ADA:如何在具有分類描述符的數據幀上使用對?

[英]R: ada: how to use pairs on a dataframe with categorical descriptors?

我正在使用ada包進行分類,其中描述符變量既是categoric又是numeric 這會導致在調用pairs函數時出現問題。 以下是說明我的問題的示例:

require(rpart)
require(ada)

data(car90, package = "rpart")
target = "Country"
input = setdiff(names(car90), target)

# ada only works with two distinct responses
car90 = car90[car90$Country %in% c("USA", "Japan/USA"), ] 

# remove surplus factor levels
car90$Country = as.character(car90$Country) 

adaCar90 = ada(car90[, input], car90[, target])
pairs(adaCar90, car90[, input], vars = 32:33)

# Error in pairs.default(as.matrix(rbind(train.data, test.x))[, vars],   
# lower.panel = panel.low,  :  non-numeric argument to 'pairs'  

只選擇numeric使用描述vars的的參數pairs功能似乎並沒有解決問題。 有誰知道我該如何解決?

干杯。

看起來ada軟件包的維護者沒想到您的特定用例。 ada:::pairs.ada最后一行顯示為:

pairs(as.matrix(rbind(train.data, test.x))[, vars], lower.panel = panel.low, 
    upper.panel = panel.up)

問題在於[, vars]放置位置。 該代碼將train.datatest.x綁定在一起,然后將整個對象轉換為矩陣,然后轉換為子集。 因為您的train.data包含一堆非數字列, as.matrix返回一個字符矩陣。 如果將最后一行更改為此:

pairs(as.matrix(rbind(train.data, test.x)[, vars]), lower.panel = panel.low, 
    upper.panel = panel.up)

然后僅在包含數字數據的子集上調用as.matrix ,該函數起作用。

編輯

我認為以上建議的是一個很好的長期解決方案,但短期解決方案可能更簡單:僅傳遞圖形需要的訓練數據列,而不使用vars選項。 這樣,只有數字數據才能傳遞到該代碼的最后一行。 這可能會為您提供圖形,而無需修改功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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