如何利用文件名信息作为R中的一个因素

时间:2012-02-12 21:59:04

标签: r

我遇到的问题与this one非常相似,但涉及的情况稍微复杂一些。

我有一堆csv文件,每个文件记录特定品种的特定复制品的50个观察值。

文件命名为Genotype_Rep.csv,我已经能够弄清楚如何提取"基因型"和#34; Rep"从文件名,感谢我上面提到的解决方案。

但是因为每个csv文件有50条记录,我需要将Genotype添加到每一行,这在上述解决方案中不起作用。

示例:

#Assume that the names of the files in the wd has been assigned to 'filenames'.
#Here's a dummy version:

filenames <- c("A_1.csv", "A_2.csv", "B_1.csv", "B_2.csv")

# extract ID from filename
ids <- gsub("([A-Z])_[0-9].csv", "\\1", filenames)

import <- mdply(filenames, read.csv)
import$ID <- IDs[import$Var1]
import$Var1 <- NULL

当每个文件都有一个观察时,这非常有效,但是当我需要将它添加到多行时,这种方法就不行了。毫无疑问,这很简单,但如果有人可以帮助我,那就太棒了。

1 个答案:

答案 0 :(得分:1)

当我测试mdply()从文件中读取多个data.frames时,包含文件索引的列是“X1”,而不是“Var1”。所以尝试替换

import$ID <- IDs[import$Var1]
import$Var1 <- NULL

import$ID <- ids[import$X1]
import$X1 <- NULL

(我还认为你打算使用“ids”,而不是“ID”。)