0

可能重复:
将数据帧拆分为 r 中的多个输出文件

我需要帮助在 R 中创建一个循环,这将帮助我将我的主数据文件子集为单独的 csv 文件。我的主文件如下所示:

主数据集

colA= c("A", "A", "A", "B", "B", "B",  "C", "C", "C")
colB= c(1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1)
colC= c(-1.2,-2.1,-3.1,-4.1,-5.1,-6.1,-7.1,-8.1,-9.1)
df= data.frame (spp=colA, latitude=colB, longitude=colC)
df

我需要输出在单独的 csv 文件中只有每个物种的数据,所以它们看起来像这样:

对于物种“A”…

colA= c("A", "A", "A")
colB= c(1.1,2.1,3.1)  
colC= c(-1.2,-2.1,-3.1,)
df2= data.frame (spp=colA, latitude=colB, longitude=colC)
write.csv (df2, file= “spA.csv”)

相同的格式,但在物种“B”和“C”的单独文件中

对一两个物种执行此操作很容易,但我的主矩阵中有 400 多个物种。谁能建议如何编写一个循环来帮助根据物种对我的数据进行子集化?谢谢

以色列

4

1 回答 1

2

就像是

for(species in unique(masterData$colA)) {
    this_file <- paste0(species, ".csv")   
    write.csv(x = masterData[masterData$colA == species, ], file = this_file)
}
于 2013-01-29T07:16:48.033 回答