我必须创建一个函数ncol_type(df,ty),它返回ty类型为df的列数。
这是我到目前为止所做的:
ncol_type = function(df, ty) {
for (col_name in names(df)) {
col_vector_class <- class(df[,col_name])
c == 0
if (col_vector_class == ty) {
c = c + 1
}
return(c)
}
}
例如,如果我输入n_col_type(df,“integer”),其中矩阵df有两列整数数据类型,我希望函数返回“2”。
我不确定我做错了什么。感谢。
答案 0 :(得分:3)
您可以重新编写代码,只需使用sum
并使用sapply
ncol_type <- function(df, ty){
sum(sapply(df, function(x) class(x)==ty))
}
ncol_type(iris, "factor")
[1] 1
ncol_type(iris, "numeric")
[1] 4