我遇到的问题与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
当每个文件都有一个观察时,这非常有效,但是当我需要将它添加到多行时,这种方法就不行了。毫无疑问,这很简单,但如果有人可以帮助我,那就太棒了。
答案 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”。)