0

我整天都在这个论坛上搜索,试图找到解决方案——我找不到,所以我发帖了。如果答案已经存在,请指出我正确的方向。

我所拥有的 - 一个包含 40 个文本文件的目录,称为以下文件

  • test_63x_disc_z00.txt
  • *01.txt
  • *02.txt
  • ...
  • *39.txt

在这些文件中的每一个中,都有 10 列数据,没有标题和不同数量的行。

我想要什么 - 我想在 R 中为每个具有名称的文本文件有一个单独的 data.frame:

  • 文件00
  • 文件01
  • ...
  • 文件 39.

然后我想为每个 data.frames 添加一个标题列。

然后我希望能够轻松地操作数据(这最后一部分我可以在输入数据后整理出来)

这就是我已经完成的(现在不要笑)-

我可以输入单个文本文件作为数据框并添加标题,如下所示:

d<-read.delim("test_63x_disc_z00.txt", header = F)

colnames(d)<-c("cell","CentX","CentY","CountLabels","AvgGreen","DeviationsGreen","AvgRed","DeviationsRed","GUI-ID","Slice")

我不确定如何设置一个循环来对所有 40 个文件执行每个命令并保持不同的文件名。

4

2 回答 2

0

感谢 Metrics 编辑我的输入代码......我不知道如何给它你所做的格式。

所以我想通了(脏版),但它仍然需要工作 -

stem <- c("/Users/stefanzdraljevic/Northwestern/2013/Carthew-Rotation/Sample-Images-Ritika/ritika-tes/statistics3/test_63x_disc_z")

以上是文件命名的词干`

addition <- c("00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","34","35","36","37","38","39")

这会将文本文件的编号添加到词干的末尾。我不确定如何在不将它们全部写出来的情况下合并“00”编号结构。

colnames <- c("cell","CentX","CentY","CountLabels","AvgGreen","DeviationsGreen","AvgRed","DeviationsRed","GUI-ID","Slice")

这会将列名添加到 data.frame

    data = NULL
for(j in stem){
    data[[j]] = NULL
    for(i in addition){
        data[[j]][[i]] = read.table(paste(j,i,".txt",sep=""), header=F, col.names=colnames)
    }
}

这个循环可以解决问题。

于 2013-09-25T14:10:46.593 回答
0

要快速读取大量数据帧,您可以

 listy <- apply(data.frame(list.files()),  1, read.table, sep="", header=F)

然后将它们命名为列表项,您可以:

 names(listy) <- paste0("file", seq_along(1:40))

然后它们由 listy$file1 等调用。

于 2013-09-25T14:46:56.990 回答