请参阅r中另一列的下一行
我想根据以下信息创建一列“结束”时间的时间请参阅r中另一列的下一行,r,R,我想根据以下信息创建一列“结束”时间的时间 case<-c(3,3,3,57,57,57,57,9,9,9) a<-c(12,15,20,12,14,15,17,14,16,19) c<-c(25,25,25,21,21,21,21,24,24,24) data<-data.frame(case,a,c) case a c 1 3 12 25 2 3 15 25 3 3 20 25 4 57 12 21 5 57 14 2
case<-c(3,3,3,57,57,57,57,9,9,9)
a<-c(12,15,20,12,14,15,17,14,16,19)
c<-c(25,25,25,21,21,21,21,24,24,24)
data<-data.frame(case,a,c)
case a c
1 3 12 25
2 3 15 25
3 3 20 25
4 57 12 21
5 57 14 21
6 57 15 21
7 57 17 21
8 9 14 24
9 9 16 24
10 9 19 24
本质上,[列b第1行]是[列a第2行]-1,具体视情况而定
我的第一步是按(case)将_分组,然后我将创建一个d的伪列,它是a-1,并尝试匹配(),但我不确定如何引用不同的行
b第一步是确定的,然后只需创建新列,该列是列(a-1)的前导,默认值(最后一个值)等于列c的最后一个值
library(dplyr)
data %>%
group_by(case) %>%
mutate(b = lead(a-1, default = last(c))) %>%
ungroup()
case a c b
<dbl> <dbl> <dbl> <dbl>
1 3 12 25 14
2 3 15 25 19
3 3 20 25 25
4 57 12 21 13
5 57 14 21 14
6 57 15 21 16
7 57 17 21 21
8 9 14 24 15
9 9 16 24 18
10 9 19 24 24
库(dplyr)
数据%>%
组别(个案)%>%
变异(b=领先(a-1,默认值=最后(c))%>%
解组()
案例a c b
1 3 12 25 14
2 3 15 25 19
3 3 20 25 25
4 57 12 21 13
5 57 14 21 14
6 57 15 21 16
7 57 17 21 21
8 9 14 24 15
9 9 16 24 18
10 9 19 24 24
第一步是确定的,然后只需创建新列,该列是列(a-1)的前导,默认值(最后一个值)等于列c的最后一个值
library(dplyr)
data %>%
group_by(case) %>%
mutate(b = lead(a-1, default = last(c))) %>%
ungroup()
case a c b
<dbl> <dbl> <dbl> <dbl>
1 3 12 25 14
2 3 15 25 19
3 3 20 25 25
4 57 12 21 13
5 57 14 21 14
6 57 15 21 16
7 57 17 21 21
8 9 14 24 15
9 9 16 24 18
10 9 19 24 24
库(dplyr)
数据%>%
组别(个案)%>%
变异(b=领先(a-1,默认值=最后(c))%>%
解组()
案例a c b
1 3 12 25 14
2 3 15 25 19
3 3 20 25 25
4 57 12 21 13
5 57 14 21 14
6 57 15 21 16
7 57 17 21 21
8 9 14 24 15
9 9 16 24 18
10 9 19 24 24
Base R
do.call(rbind,
by(data,list(data$case),function(x){
cbind(
x,
"b"=c(tail(x$a,-1)-1,x$c[1])
)
})
)
case a c b
3.1 3 12 25 14
3.2 3 15 25 19
3.3 3 20 25 25
9.8 9 14 24 15
9.9 9 16 24 18
9.10 9 19 24 24
57.4 57 12 21 13
57.5 57 14 21 14
57.6 57 15 21 16
57.7 57 17 21 21
基尔
倒数第二个b值应该是18吗?倒数第二个b值应该是18吗?