我正在尝试使用" \ n"将数据分成列。在rstudio中,然后使用" \ t"将数据进一步分成行。到目前为止,我已经能够通过" \ n"将数据分开,但我无法弄清楚如何通过" \ t"进一步分割数据。我无法在我使用的数据中找到任何标题名称,因为它是我从msigdb网站下载的表格。这是我到目前为止所拥有的:
matrix_sep_by_enter<-read.table("msigdb.v5.2.symbols.txt",sep = "\n")
如何使用&#34; \ t&#34;
进一步分离谢谢!
答案 0 :(得分:1)
我不完全确定你想如何解析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基因设置weblink,其余条目为基因符号与该基因组相关联。
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]