我正在写一个考虑bool参数的函数:
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)
时,我收到以下错误:
名称错误(Data_Qual)&lt; - c(ifelse(Price,&#34; Price.Qual&#34;, 数字(0)),:&#39;名称&#39; attribute [2]的长度必须与 向量[1]
任何人都可以帮我解决这个问题,谢谢!
答案 0 :(得分:0)
你可以使你的功能不那么复杂,并且像这样工作:
Discretize <- function(Data, Price, Hour) {
df <- Data[,c(Price, Hour)]
names(df) <- c("Price.Qual", "Hour.Qual")[c(Price, Hour)]
df
}
sampleData <- data.frame(P=1, H=2)
Discretize(Data=sampleData,Price=TRUE,Hour=FALSE)
#Price.Qual
# 1