gpt4 book ai didi

r - 将一些 csv 文件组合成一个 - 不同数量的列

转载 作者:行者123 更新时间:2023-12-05 02:23:32 26 4
gpt4 key购买 nike

我已经用函数加载了 20 个 csv 文件:

tbl = list.files(pattern="*.csv")
for (i in 1:length(tbl)) assign(tbl[i], read.csv(tbl[i]))

list_of_data = lapply(tbl, read.csv)

它的样子:

> head(tbl)
[1] "F1.csv" "F10_noS3.csv" "F11.csv" "F12.csv" "F12_noS7_S8.csv"
[6] "F13.csv"

我必须将所有这些文件合并为一个。让我们称它为主文件,但让我们尝试制作一个包含所有名称的表格。在所有这些 csv 文件中都有一个名为“Accession”的列。我想从所有这些 csv 文件中制作一个包含所有“名称”的表格。当然,许多种质可以在不同的 csv 文件中重复。我想保留所有与加入相对应的数据。

一些问题:

  • 其中一些“名称”是相同的,我不想重复它们
  • 其中一些“名称”几乎相同。不同的是有名字后变成点和数字。
  • 那些 csv 文件的列数可以不同。

这是显示这些数据的截图: http://imageshack.com/a/img811/7103/29hg.jpg

让我向您展示它的外观:

AT3G26450.1 <--
AT5G44520.2
AT4G24770.1
AT2G37220.2
AT3G02520.1
AT5G05270.1
AT1G32060.1
AT3G52380.1
AT2G43910.2
AT2G19760.1
AT3G26450.2 <--

<-- = 相同的样本,不同的名称。应一视同仁。所以忽略点和后面的数字。

有可能吗?

我做不到 dput(head)因为它的数据集太大了。

我尝试使用这样的代码:

all_data = do.call(rbind, list_of_data)
Error in rbind(deparse.level, ...) :
The number of columns is not correct.


all_data$CleanedAccession = str_extract(all_data$Accession, "^[[:alnum:]]+")
all_data = subset(all_data, !duplicated(CleanedAccession))

我尝试了将近 2 周,但我做不到。所以请帮助我。

最佳答案

您的问题似乎包含多个子问题。我鼓励你把它们分开。

您显然需要做的第一件事是将数据框与不同的列组合起来。您可以使用 plyr 包中的 rbind.fill:

library(plyr)
all_data = do.call(rbind.fill, list_of_data)

关于r - 将一些 csv 文件组合成一个 - 不同数量的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607930/

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