我试图将列数存储到x的变量中, y和z以便我以后可以更改他们的课程。变量看起来像这样:x = c(2,3,4,5,6,7,8)。
相反,当我跑步时,我会收到以下消息:
FUN中的错误(X [[i]],...):无效的'长度'参数
NAcorrected.data只是我想要将列类中的更改应用到的数据集。
干杯。
clean.data <- function(x, y, z) {
factors <- x
integers <- y
numerics <- z
cleaned.data <- NAcorrected.data
cleaned.data[factors] <- lapply(cleaned.data[factors], factor)
cleaned.data[integers] <- lapply(cleaned.data[integers], integer)
cleaned.data[numerics] <- lapply(cleaned.data[numerics], numeric)
str(cleaned.data)
return("Function Complete")
}
答案 0 :(得分:1)
此功能的干净且可重复使用的方法可能如下所示:
clean.data <- function(df, factors, integers, numerics, characters){
if(!missing(factors)){
df[factors] <- lapply(df[factors], as.factor)
}
if(!missing(integers)){
df[integers] <- lapply(df[integers], as.integer)
}
if(!missing(numerics)){
df[numerics] <- lapply(df[numerics], as.numeric)
}
if(!missing(characters)){
df[characters] <- lapply(df[characters], as.character)
}
return(df)
}
这样你