我有一个数据框架,列给出每行的开始和结束。我希望序列的第一行从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)