【发布时间】:2016-03-17 11:26:24
【问题描述】:
我有以下类型的数据。一列有树种(33 种),一个有树 ID(对于每个物种,观察到许多树),一列有每个物种的每棵树的一些值,年,月:
Tree.ID、物种、值、年、月
数据集相当大 > 20 000 行。为了进一步分析,我需要首先将数据框中的 Species 列转换为唯一字符,因为稍后我需要为每个物种运行一个 for 循环并分析它们多年来的行为。
这是我用来将数据框中的 Species 列转换为唯一字符的代码。我正在使用以下代码,该代码不起作用并且仅返回一个物种,而不是所有 33 个物种及其所有值。
for(sp in unique(flower.B$Species)){
dat.sp <- flower.B[flower.B$Species == sp,]
对此有什么想法吗?
【问题讨论】:
-
您能否提供一个可重现的示例来显示当前和所需的输出?
-
我认为现在没有必要这样做。稍后您必须将数据框拆分为
Species(最终拆分为Year)并计算您的结果。有很多方法可以做到这一点,例如ddply来自包plyr或使用包data.table或by()来自 base R。 -
flower.B 是调用的数据框
-
@Gabriela 只是为了更清楚地了解您要查找的内容,您想从数据框中提取 Species 的唯一值,然后按 ID 对每个唯一 Species 进行子集化吗?跨度>