r - 即使在传递数据帧后返回参数丢失错误
问题描述
我正在编写一个函数来返回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
推荐阅读
- c++ - 如何从图像中取出飞机,对其进行修改并重新插入?
- python - 我无法理解这段代码
- excel - 如何查找/匹配行和列?
- php - 如何从json中提取字符串
- javascript - Angular 中的 Javascript 服务依赖注入
- wcf - 在 dotnet core 2.2 中配置 WCF 客户端绑定以使用 X509 证书
- node.js - 有没有办法使用 aws-sdk(节点)获取 S3 使用统计信息(如使用的空间)?
- reactjs - Material-UI 面包屑导航与 react-router 集成
- java - 与多个 testng 测试用例共享相同的数据提供程序,在从 excel 中读取第二个测试用例的数据时给出空指针异常
- owin - 如何使用 OWIN 托管多个 .Net-Core WebApi 在相同的 URL 下,所有 API 使用相同的中间件管道