假设我有这张表:
chr start_coor end_coor
1 122000001 128000000
我想把这个表变成下面的表,其中间隔设置为100万:
chr start_coor end_coor
1 122000001 123000000
1 123000001 124000000
1 124000001 125000000
1 125000001 126000000
1 126000001 127000000
1 127000001 128000000
使用基本 R 或 tidyverse 函数,我怎样才能实现这一目标?
谢谢。
最佳答案
使用 tidyverse
你可以做到:
library(tidyverse)
df %>%
mutate(start_coor = map2(start_coor, end_coor, seq, 1000000)) %>%
unnest(start_coor) %>%
mutate(end_coor = start_coor + 999999)
# chr start_coor end_coor
# <int> <dbl> <dbl>
#1 1 122000001 123000000
#2 1 123000001 124000000
#3 1 124000001 125000000
#4 1 125000001 126000000
#5 1 126000001 127000000
#6 1 127000001 128000000
数据
df <- structure(list(chr = 1L, start_coor = 122000001L, end_coor = 128000000L),
class = "data.frame", row.names = c(NA, -1L))
关于r - 将大数区间转换为指定范围的较小区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64786287/