我寫一個函數取布爾參數動態更新的名字:選擇數據框中列和R中
Discretize <- function(Data, Price, Hour) # Bool input
{
num_var <- sum(Price, Hour)
Data_Qual <- as.data.frame(array(0, dim = c(nrow(Data), num_var)))
names(Data_Qual) <- c(ifelse(Price, "Price.Qual", numeric(0)),
ifelse(Hour, "Hour.Qual", numeric(0)))
}
但是當我運行函數:Discretize(Data = Date, Price = T, Hour = F)
,我得到了以下錯誤:
Error in names(Data_Qual) <- c(ifelse(Price, "Price.Qual", numeric(0)), : 'names' attribute [2] must be the same length as the vector [1]
任何人都可以幫助我解決這個問題,謝謝!
有一些信息丟失。什麼是「Data_New」和「Date」?另外,你的電話應該包含'Data = Date',但這可能是一個錯字。另外,你想用'names'改變什麼?如果你使用'colnames'或'rownames',理解起來會更容易,但是從你的錯誤來看,列數不是2,就像你定義的名字的數量一樣。 – Molx
對於輸入錯誤,Data_New應該是Data,輸入參數。我在這裏要做的是給data.frame命名:Data_Qual基於輸入變量,它採用bool值。所以當我打電話給Discretize(Date = Date,Price = T,Hour = F)時,我期待data.frame只有一個Colum,Price,但是我得到了上述錯誤。 – user4780831