【问题标题】:Ignoring aggregate error for files without row data in R忽略 R 中没有行数据的文件的聚合错误
【发布时间】:2021-03-22 09:44:46
【问题描述】:

我正在对 300 多个 csv 文件进行分析并获得所需的输出,但是当我的 R 代码在列表中找到没有任何行数据的空白 csv 文件并生成以下错误时,它会停止并终止 “aggregate.data.frame(lhs, mf[-1L], FUN = FUN, ...) 中的错误:没有要聚合的行”。

基本上它会生成输出,直到它在列表中找到一个空白的 csv,然后以这个错误终止代码。我希望代码中的某些内容忽略此错误,因为手动检查空白文件效率很低。

代码非常庞大,但是我最初使用的是:

filenames <- list.files(pattern = '.csv', recursive = TRUE)

然后从多个 csv 文件中读取几列,并基于执行聚合的特定列。有趣的是,在一列中,我使用 csv 文件计算行数

row <- aggregate(formula=.~day,data=rowdata,FUN=NROW)

我怀疑这个函数在读取空白 csv 文件时是否会产生错误。

需要帮助!

【问题讨论】:

    标签: r aggregate


    【解决方案1】:

    您能否包含if 条件来检查数据框中的行数?

    类似这样的:

    if(nrow(rowdata) > 0) row <- aggregate(.~day,data=rowdata,FUN=NROW)
    else NULL
    

    【讨论】:

    • 我试过了,但错误是“参数的长度为零”我也使用过:if(!is.null(rowdata) & length(rowdata) > 0 ) 但是 R 正在重新调整相同的错误。
    • 您可以编辑您的帖子以显示您在for 循环或应用命令中使用的代码吗?使用if(length(rowdata) &gt; 0 &amp;&amp; nrow(rowdata) &gt; 0) 有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多