返回矩阵中特定数据类型的列数

时间:2018-03-15 22:48:52

标签: r function for-loop dataframe column-types

我必须创建一个函数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”。

我不确定我做错了什么。感谢。

1 个答案:

答案 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