我正在编写一个函数来返回data.frame
中的变量名称和类。
vec_name<-c()
vec_class<-c()
Df_class <- function(x){
for (i in 1:length(colnames(x))){
vec_name[i] <- colnames(x)[i]
vec_class[i] <- class(colnames(x)[i])
}
df <-as.data.frame(name=vec_name,class=vec_class)
return(df)
}
现在当我调用函数
Df_class(mtcars)
我看到下面提到的错误
错误:缺少“ x”参数且没有默认值
你们能帮忙吗?可能是我在这里缺少某些东西,不确定是什么!为什么尽管传递了data.frame
却出现错误?
答案 0 :(得分:1)
我不确定您要做什么。例如,现有列名的class
将始终为"character"
。
无论哪种方式,这是你的追求吗?
Df_class <- function(x) data.frame(name = colnames(x), class = class(colnames(x)))
# name class
#1 mpg character
#2 cyl character
#3 disp character
#4 hp character
#5 drat character
#6 wt character
#7 qsec character
#8 vs character
#9 am character
#10 gear character
#11 carb character
也许您想返回列向量的class
而不是列名?在这种情况下,您可以
Df_class <- function(x) data.frame(name = colnames(x), class = sapply(x, class))
Df_class(iris)
# name class
#Sepal.Length Sepal.Length numeric
#Sepal.Width Sepal.Width numeric
#Petal.Length Petal.Length numeric
#Petal.Width Petal.Width numeric
#Species Species factor