gpt4 book ai didi

r - 在 R 中导入多个文件时自动命名对象

转载 作者:行者123 更新时间:2023-12-04 22:48:29 26 4
gpt4 key购买 nike

因此,我下载了一个包含 900 个 txt 文件的数据集,每个生物样本一个。我想要做的是将所有这些数据合并到 R 中的一个数据矩阵中。

txt_files = list.files()

# read txt files into a list
for (i in length(txt_files)){
x <- read.table(file=txt_files[i], sep="\t", header=TRUE, row.name=1)
}

所有文件都在一个文件夹中,所以我使用 list.files()查询所有文件名。然后我想将每个表读入一个单独的 R 对象(在这种情况下称为 x )。问题是我想用实际文件的名称而不是 x 来命名每个对象。

我尝试了几件事并尝试在互联网上搜索,但还没有找到解决方案。
我发现的一件事是使用 lapply 将它们全部导入到数据列表中。
data_list = lapply(txt_files, read.table, sep = "\t")

但是,我认为这不适合我,因为在此之后数据矩阵不再可用。我希望有一个人可以帮助我。

最佳答案

命名连接的(尤其是顺序的)事物通常是一件坏事。您要做的下一件事是遍历这些内容,这意味着通过将位粘贴在一起来构造名称。一团糟。

尽可能将事物存储在列表中。你已经做到了。我创建了几个 CSV 文件:

> txt_files=c("f1.txt","f2.txt","f3.txt","f4.txt","f5.txt")
> data_list = lapply(txt_files, read.table, sep = ",")
> data_list[[1]]
V1 V2 V3
1 1 2 3
> data_list[[3]]
V1 V2 V3
1 1 2 3
2 5 4 3
3 1 2 3

所以现在我可以用 for(i in 1:length(txt_files)) 遍历它们并使用 txt_files[i] 获取文件名等等:
> for(i in 1:length(txt_files)){
+ cat("File is ",txt_files[i],"\n")
+ print(summary(data_list[[i]]))
+ }

File is f1.txt
V1 V2 V3
Min. :1 Min. :2 Min. :3
1st Qu.:1 1st Qu.:2 1st Qu.:3
Median :1 Median :2 Median :3
Mean :1 Mean :2 Mean :3
3rd Qu.:1 3rd Qu.:2 3rd Qu.:3
Max. :1 Max. :2 Max. :3
File is f2.txt
V1 V2 V3
Min. :1 Min. :2 Min. :3
1st Qu.:1 1st Qu.:2 1st Qu.:3
Median :1 Median :2 Median :3
Mean :1 Mean :2 Mean :3
3rd Qu.:1 3rd Qu.:2 3rd Qu.:3
Max. :1 Max. :2 Max. :3
...

[等等]

关于r - 在 R 中导入多个文件时自动命名对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13971982/

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