【发布时间】:2017-09-13 09:39:11
【问题描述】:
我试图根据一个变量定义不同的组。这是一个简单的问题,但我无法弄清楚。
在我的数据集中,我为每棵树都有一些独特的组(“dist”变量中的值为 1)。我想创建一个新变量,它将为每个组分配唯一的独特值。
我的数据如下:
Tree_ID dist
1 0
1 1
1 1
1 0
1 1
1 0
我想创建一个新变量,它将分配给不同的组“dist == 1”唯一值 (unique_gr)。
Tree_ID dist unique_gr
1 0 0
1 1 1
1 1 1
1 0 0
1 1 2
1 0 0
我尝试使用“ifelse”函数检查当前行,当“dist == 0”表示没有组时
ifelse(dist == 1, "unique_gr", 0) # checking the current row
主要问题是如何在“unique_gr”中为每个不同的组指定不同/递增的唯一值(例如 1、2、3、4..)?
感谢您的帮助。
【问题讨论】:
-
感谢@VincentGuillemot 的建议。我认为我在正确的轨道上。但是如何将新组添加到新变量(列)中?
-
使用你的第二个帖子@VincentGuillemot stackoverflow.com/questions/46117904/… 我设法得到了我想要的。谢谢你。我的解决方案是
df$unique_gr <- (1-cummax(df$dist==0)) + cumsum(df$dist==0) * df$dist -
我会建议您使用
rle的解决方案,我认为我的解决方案确实不起作用,我必须更正它