我在R中遇到了一些麻烦。我是R的新用户。
所以我有一个看起来像这样的数据框(但更长):
Chromosome Start End Region_type Region_id NA
chr1 54159118 54159437 Peak MACS_peak_436 NA
chr1 54159120 54159439 Peak MACS_peak_436 NA
chr1 54159122 54159441 Peak MACS_peak_436 NA
chr1 54159124 54159443 Peak MACS_peak_436 NA
chr1 54159130 54159449 Peak MACS_peak_436 NA
chr1 54165713 54166032 Peak MACS_peak_422 NA
我的第一个问题是我的文件没有标题,我使用以下命令上传文件:
My_data=read.table("/home/toto/test.bed",sep="\t", dec=".",fill=TRUE,header = FALSE)
然后尝试制作这样的标题
names(My_data)=c("chr", "start","end","Region_type","Region_id")
但是当我要专栏文章
My_column<-My_data$Region_type
它不起作用。所以我必须那样做:
My_column<-My_data[,4]
但是我不明白为什么标题不起作用...
我的第二个问题是我要列出所有属于每个区域(MACS_peak_xxx)的克隆(克隆由chrX Start-End表示)。
为此,我尝试了类似的方法:
region_list <- levels(My_data[,4])
region_list_clones <- lapply(region_list, function(x) which( My_data[,4] == x))
我很确定这很容易...
谢谢您的帮助,希望我的例子很清楚:)
答案 0 :(得分:0)
这个问题尚不清楚,但是我认为您正在寻找split(My_data, My_data[,5])
更新
这将为您提供一个列表,其中包含每个region_id的区域向量。它使用tidyverse
中的tidyr
和purrr
软件包
My_data %>% unite(region, chr, start, end, sep=',') %>%
split(.$Region_id) %>%
map("region")
> $MACS_peak_422
> [1] "chr1,54165713,54166032"
> $MACS_peak_436
> [1] "chr1,54159118,54159437" "chr1,54159120,54159439" "chr1,54159122,54159441" "chr1,54159124,54159443" "chr1,54159130,54159449"