复位start - end序列,从r中的1开始



我有一个数据框架,列给出每行的开始和结束。我希望序列的第一行从1开始。

我的数据框架如下所示:

> df1
start end
1     5   7
2     8  12
3    13  15
4    16  20

我想把它转换成这样:

> df2
start end
1     1   3
2     4   8
3     9  11
4    12  16

1)减去start的第一个元素,并对所有元素加1。

df2 <- df1 - df1$start[1] + 1
df2
##   start end
## 1     1   3
## 2     4   8
## 3     9  11
## 4    12  16

2)

library (dplyr)
df1 %>%
mutate(across() - first(start) + 1)

注意

可复制形式的df1

Lines <- "  start end
1     5   7
2     8  12
3    13  15
4    16  20"
df1 <- read.table(text = Lines)

最新更新