R有所不同
我试图使用R返回一些值,例如,如果两行(I+1)和I之间的差值小于或等于1,那么“node”=1。 我的数据如下所示:R有所不同,r,R,我试图使用R返回一些值,例如,如果两行(I+1)和I之间的差值小于或等于1,那么“node”=1。 我的数据如下所示: id x y 1 7 1 2 7 2 3 7 2 4 7 4 5 7 5 6 7 7 7 7 8 8 7 10 9 7 1
id x y
1 7 1
2 7 2
3 7 2
4 7 4
5 7 5
6 7 7
7 7 8
8 7 10
9 7 10
10 7 12
我想得到:
id x y diff node
1 7 1 0 1
2 7 2 1 1
3 7 2 1 1
4 7 4 2 2
5 7 5 1 2
6 7 7 2 3
7 7 8 1 3
8 7 10 2 4
9 7 10 0 4
10 7 12 2 5
上面,diff是两个连续行之间的差值,包括第1行和第1行的差值=0。如果diff尝试此操作,假设您的data.frame被称为
dat
,则第一个差异的节点为1:
dat$node <- c(0,cumsum(diff(dat$y)>1))+1
dat$diff <- c(0,ifelse(diff(dat$y)>1,2,1))
非常感谢你!那很好用。如何获取差异列?
> dat
id x y node diff
1 1 7 1 1 0
2 2 7 2 1 1
3 3 7 2 1 1
4 4 7 4 2 2
5 5 7 5 2 1
6 6 7 7 3 2
7 7 7 8 3 1
8 8 7 10 4 2
9 9 7 10 4 1
10 10 7 12 5 2