我有以下类型的数据。一个树种有树种(33种),一种有树ID(每个物种都观察到很多树),每个树的每棵树都有一些值的列,年,月:
Tree.ID,Species,Values,Year,Month
数据集非常大> 20 000行。对于我的进一步分析,我需要首先将数据框中的Species列转换为唯一字符,因为稍后我将需要为每个物种运行for循环并分析它们多年来的行为。
以下是我用来将数据框中的Species列转换为唯一字符的代码。我正在使用以下不起作用的代码,只返回一个物种,而不是所有33的物种。
for(sp in unique(flower.B$Species)){
dat.sp <- flower.B[flower.B$Species == sp,]
对此有何想法?
答案 0 :(得分:0)
你在循环的每次迭代中覆盖了dat.sp,这是否需要?在任何情况下,以下工作对我来说都没问题。
data(iris)
for(sp in unique(iris$Species)){
print(iris[iris$Species %in% sp, ])
}
我不确定你的循环的其余部分是什么,但我建议查看split命令,它与apply系列函数一起使用。请参阅以下示例:
lapply(split(iris, iris$Species), NROW)