r - (R) 数据帧的 for 循环不起作用

标签 r loops dataframe for-loop

我正在尝试使用 for 循环创建一个数据框,因为我想在每次迭代时使用新元素更新数据框中的行。但是,只有最后一个值被打印到数据框中。

我尝试将不同的文件读入数据帧,然后使用“cbind”将数据文件的条目号与文件中的完整案例数相匹配。该代码适用于单个条目,但我无法使用 for 循环将所有不同的行添加在一起;它似乎将第二次迭代复制到第一次迭代上,依此类推。

完整案例

complete <- function(directory, id) {

    fileList <- dir(directory, full.names = TRUE);
    frame <- data.frame();

    for (i in seq_along(id)) {

        data <- complete.cases(read_csv(fileList[i]));
        frame <- cbind(i, sum(data));
    }

}

因此,我想获取一个数据框,其中列出了指定目录中的不同文件以及完整案例的数量。你能告诉我在这个 for 循环中我做错了什么吗?

最佳答案

由于您总是在循环中覆盖数据帧frame,因此您也需要cbind它。

complete <- function(directory, id) {

    fileList <- dir(directory, full.names = TRUE);
    frame <- data.frame();

    for (i in seq_along(id)) {

        data <- complete.cases(read_csv(fileList[i]));
        frame <- cbind(frame, i, sum(data));
    }

}

否则你的frame会在每次新的迭代中被设置。因此,如果您想将其添加到 frame 中,则必须将 frame 也作为输入

关于r - (R) 数据帧的 for 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54266934/

相关文章:

java - Android 应用程序在计时器循环时崩溃

python - 如何根据比较两列中的值来组合 pandas 数据框中的行?

Python:使用 Pandas 从 CSV 文件中删除非 ASCII 字符

r - "RTextTools"create_matrix 出错

html - Shiny - 绘制列的右边框

java - Head First Java Mix For 5 练习 - 中断子句

mysql - 如何将 R 中的数据框导出到 MySQL 中的表

r - 使用 RDCOMClient 打开数据帧时内存泄漏

r - 增加 ggplot2 中图例演示的中断

javascript - 为什么我 Eloquent javascript 解决方案崩溃了?