gpt4 book ai didi

r - 如何在R中堆叠数据?

转载 作者:行者123 更新时间:2023-12-04 05:32:58 24 4
gpt4 key购买 nike

我有 20 个不同的 .csv 文件,我需要了解如何在 R 中堆叠数据,以便我可以全面了解数据。
目前我正在复制和粘贴excel中的列以制作一个大数据集。
但是,我确信在 R 中有一种更快、更有效的方法,因为这最终需要一段时间。

此外,更糟糕的是,每个数据集中的某些变量名称并不相同。
例如,VARIABLE1 在某些数据集中被写为 variable1。我将如何在 R 中纠正这一点,因为我知道 R 区分大小写?

任何帮助将不胜感激。谢谢!

最佳答案

如果您(或希望您)熟悉 data.table,这是最简单、最快捷的方法。包是这样的(未经测试):

require(data.table)
in_pth <- "path_to_csv_files" # directory where CSV files are located, not the files.
files <- list.files(in_pth, full.names=TRUE, recursive=FALSE, pattern="\\.csv$")
out <- rbindlist(lapply(files, fread))
list.files参数:
  • full.names = TRUE将返回文件的完整路径。假设您的 in_pth <- "c:\\my_csv_folder"里面有两个文件:01.csv and 02.csv .然后,full.names=TRUE将返回 c:\\my_csv_folder\\01.csvc:\\my_csv_folder\\02.csv ( 完整路径 )。
  • recursive = FALSE不会在内部搜索 目录 在您的 in_pth 内文件夹。假设您在 c:\\my_csv_folder\\another_folder 中还有两个 csv 文件.现在,如果你想在这个里面加载这些文件,那么你可以设置 recursive=TRUE , 它将扫描文件,直到您找到所有向下搜索的目录。
  • pattern=\\.csv$ :这是一个正则表达式,用于告诉要加载哪种文件。如果您的文件夹除了 csv 文件之外还有文本文件 (.txt),那么通过指定此模式,您将仅加载 csv文件。如果您的文件夹只有 CSV 文件,则没有必要。


  • 数据表函数:
  • rbindlist通过保留以前的 data.table 的名称来避免列名冲突。也就是说,如果您有两个 data.table s dt1, dt2列名 x,ya,b分别,然后做 rbindlist(dt1,dt2)会照顾改变a,bx,yrbindlist(dt2, dt1)会照顾改变x,ya,b .
  • fread最常自动处理列、标题分隔符等......并且速度非常快(尽管仍处于实验阶段,因此您可能需要检查输出以确保一切正常(即使稳定))。
  • 关于r - 如何在R中堆叠数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17272459/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com