【问题标题】:Loops for sorting data in R [duplicate]R中用于对数据进行排序的循环[重复]
【发布时间】:2013-01-29 07:05:43
【问题描述】:

可能重复:
split dataframe into multiple output files in 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 个物种。谁能建议如何编写一个循环来帮助根据物种对我的数据进行子集化?谢谢

以色列

【问题讨论】:

  • 看起来@BenBarnes 很有帮助,但如果您可以使您的示例更具重现性(例如使用head(dput(yourdf)) 为我们提供示例数据),您可能会得到更好的答案。

标签: r sorting loops


【解决方案1】:

类似

for(species in unique(masterData$colA)) {
    this_file <- paste0(species, ".csv")   
    write.csv(x = masterData[masterData$colA == species, ], file = this_file)
}

【讨论】:

  • 谢谢。这似乎适用于测试数据集。明天我会用真实的数据再试一次,希望它继续有效。干杯。
  • P.S.如果我想在写出 CSV 文件之前根据纬度对观察结果进行降序排序并在同一循环中省略缺失值和 NA,会发生什么情况?
  • @user2020652 应该不是问题。试试看。
猜你喜欢
  • 2021-11-16
  • 2012-07-20
  • 2013-07-17
  • 2021-10-05
  • 2020-06-10
  • 1970-01-01
  • 2021-08-03
  • 2017-03-09
  • 1970-01-01
相关资源
最近更新 更多