1

我是 R 编码的初学者。我在一列中有 60 个唯一 ID,每个唯一 ID 有 30 个条目,我想编写一个代码,自动为每个唯一 ID 创建单独的文件。此代码适用于单个 ID

unique(src$ID)
ID2<- subset(src, ID=='099857')
write.csv(pat2,file= "D:/R/ID2.csv")

当我尝试使用以下代码循环它时。

for (i in 1:length(unique(src$ID)))
{ unique(src$ID)
  id<- subset(src, ID== "i")
  paste(id)
  write.csv(i,file="D:R/i.csv")
}

我得到一个只计算所有唯一 ID (60) 并将它们粘贴到 Excel 表中的文件。

试图将单个 ID 的结构合并到自动循环中。

预期输出 - 60 个唯一文件,每个文件 30 个条目。

有人有什么建议吗?谢谢你。

4

1 回答 1

3

您正在迭代数字向量 (1:length(unique(src$ID)),但在循环中您将 i 称为字符向量“i”。尝试将其更改为:

for(i in unique(src$ID)) {
ID2 <- subset(src, ID == i)
write.csv(ID2, file = paste0("D:/R/",i,".csv"))
}

...如果包含 ID 的列的名称是“SampleID”,那么您应该将其更改为:

 for(i in unique(src$SampleID)) {
    ID2 <- subset(src, SampleID == i)
    write.csv(ID2, file = paste0("D:/R/",i,".csv"))
    }
于 2015-09-26T04:01:16.130 回答