我正在尝试使用 rstudio 中的“\n”将数据分成列,然后使用“\t”将该数据进一步分成行。到目前为止,我已经能够通过“\n”分隔数据,但我不知道如何通过“\t”进一步拆分数据。我在使用的数据中找不到任何标题名称,因为它是我从 msigdb 网站下载的表。这是我到目前为止所拥有的:
matrix_sep_by_enter<-read.table("msigdb.v5.2.symbols.txt",sep = "\n")
如何使用“\ t”进一步分隔它
谢谢!
我正在尝试使用 rstudio 中的“\n”将数据分成列,然后使用“\t”将该数据进一步分成行。到目前为止,我已经能够通过“\n”分隔数据,但我不知道如何通过“\t”进一步拆分数据。我在使用的数据中找不到任何标题名称,因为它是我从 msigdb 网站下载的表。这是我到目前为止所拥有的:
matrix_sep_by_enter<-read.table("msigdb.v5.2.symbols.txt",sep = "\n")
如何使用“\ t”进一步分隔它
谢谢!
我不完全确定你想如何解析 MSigDB。我已经下载了最新的 MSigDB GMT 文件,所以我将根据该文件向您展示一种可能性。
读取 GMT 文件。
df <- read.table("msigdb.v6.1.symbols.gmt", sep = "\n");
这将创建一个data.frame
具有一列和与 GMT 文件中的行一样多的行。
将每一行拆分为基于"\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]