0

我正在尝试使用 rstudio 中的“\n”将数据分成列,然后使用“\t”将该数据进一步分成行。到目前为止,我已经能够通过“\n”分隔数据,但我不知道如何通过“\t”进一步拆分数据。我在使用的数据中找不到任何标题名称,因为它是我从 msigdb 网站下载的表。这是我到目前为止所拥有的: matrix_sep_by_enter<-read.table("msigdb.v5.2.symbols.txt",sep = "\n")

如何使用“\ t”进一步分隔它

谢谢!

4

1 回答 1

1

我不完全确定你想如何解析 MSigDB。我已经下载了最新的 MSigDB GMT 文件,所以我将根据该文件向您展示一种可能性。

  1. 读取 GMT 文件。

    df <- read.table("msigdb.v6.1.symbols.gmt", sep = "\n");
    

    这将创建一个data.frame具有一列和与 GMT 文件中的行一样多的行。

  2. 将每一行拆分为基于"\t"

    lst <- apply(df, 1, function(x) unname(unlist(strsplit(x, "\t"))));
    

    结果存储在一个list字符向量(不同长度)中,其中第一个条目给出基因集名称,第二个条目给出 MSigDB 基因集网络链接,其余条目是与该基因集相关的基因符号。

    str(lst, list.len = 5);
    #List of 17786
    # $ : chr [1:195] "AAANWWTGC_UNKNOWN" "http://www.broadinstitute.org/gsea/msigdb/cards/AAANWWTGC_UNKNOWN" "MEF2C" "ATP1B1" ...
    # $ : chr [1:376] "AAAYRNCTG_UNKNOWN" "http://www.broadinstitute.org/gsea/msigdb/cards/AAAYRNCTG_UNKNOWN" "LTBP1" "PLEKHM1" ...
    # $ : chr [1:267] "MYOD_01" "http://www.broadinstitute.org/gsea/msigdb/cards/MYOD_01" "KCNE1L" "FAM126A" ...
    # $ : chr [1:255] "E47_01" "http://www.broadinstitute.org/gsea/msigdb/cards/E47_01" "MLIP" "FAM126A" ...
    # $ : chr [1:251] "CMYB_01" "http://www.broadinstitute.org/gsea/msigdb/cards/CMYB_01" "FAM126A" "C5orf64" ...
    #  [list output truncated]
    
于 2018-01-23T23:59:29.633 回答