只是想知道是否有办法将具有多个观测值的行扩展为使用R的独特观测行?我有一个带有变量标题的excel电子表格中的数据:Lease,Line,Bay,Date,Predators,Food.Index,DD,MM,YY。
在某些日期,同一行记录了多个捕食者(从1到4)。其他日子只有0个。在记录了4个捕食者的那一天,我想以某种方式转换数据以显示四个独特的观察结果(而不是在“捕食者”下记录4个的一行)。
我有1669行数据,需要扩展多行
答案 0 :(得分:1)
假设您在data.frame df
中拥有数据,那么一种可能的解决方案就是
df.expanded <- df[rep(row.names(df), df$Predators), ]
编辑:如果您还希望将行保留为0个捕食者,则可以使用pmax
始终返回至少一个:
df.expanded <- df[rep(row.names(df), pmax(df$Predators, 1)),]
此处pmax(df$Predators, 1)
将返回df$Predators
和1
的元素最大值,以便返回一个新的向量,其中每个元素至少为1,但取值为{{1}如果该数字大于1。