R 将具有多个观测值的行展开为单独的行

R 将具有多个观测值的行展开为单独的行,r,R,只是想知道是否有一种方法可以使用R将具有多个观测值的行扩展为具有唯一观测值的行?我在excel电子表格中有各种标题的数据:租约、线路、海湾、日期、捕食者、食物、索引、日、月、年 在某些日期,在同一行记录了多个捕食者(从1到4)。其他日子只有0。在记录了4个捕食者的一天,我想以某种方式转换数据,以显示四个独特的观察结果(而不是一行记录在“捕食者”下的4个) 我有1669行数据,需要扩展多行 数据集示例 非常感谢你的帮助 假设您的数据位于data.frame,df中,一种可能的解决方案是 df.e

只是想知道是否有一种方法可以使用R将具有多个观测值的行扩展为具有唯一观测值的行?我在excel电子表格中有各种标题的数据:租约、线路、海湾、日期、捕食者、食物、索引、日、月、年

在某些日期,在同一行记录了多个捕食者(从1到4)。其他日子只有0。在记录了4个捕食者的一天,我想以某种方式转换数据,以显示四个独特的观察结果(而不是一行记录在“捕食者”下的4个)

我有1669行数据,需要扩展多行

数据集示例

非常感谢你的帮助


假设您的数据位于data.frame,
df
中,一种可能的解决方案是

df.expanded <- df[rep(row.names(df), df$Predators), ]

这里是
pmax(df$捕食者,1)
将返回元素最大值
df$Predators
1
,这样它将返回一个新向量,其中每个元素至少为1,但如果该值大于1,则取
df$Predators
的值。

听起来好像您正在尝试将数据从宽格式转换为长格式。也许可以搜索这些术语,并在
tidyr
中查看
gather
以了解一种方法。谢谢您的回复。我在搜索中遇到了这些函数来解决我遇到的问题,但是这些选项似乎并不能完全满足我的要求。如果您想要一个精确的解决方案,请发布一个包含代表性数据的可复制示例,并显示您想要的输出外观。图像可能重复!=数据,请为您的数据问题添加一个最小的示例,
data-Excellent,非常感谢。这管用!记录代表每次观察的其他行。如果有4个捕食者,每一行显示“4”,但是我可以重新分配这些值为1。非常感谢您的帮助,非常感谢。只需一个查询,就可以删除所有记录值为0的观察结果。我仍然希望看到这些观察结果——有没有办法保存这些观察结果?我已经更新了答案来解释这种情况。太好了!非常感谢。你太棒了:)
df.expanded <- df[rep(row.names(df), pmax(df$Predators, 1)),]