我正在编写一个函数来返回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
,我还是会出错?
我不确定你想做什么。例如,现有列名的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