我有一个关于如何使用
我有一个包含两列"snps"和"gene"的数据框。其中,"snps"是一个因子,"gene"是一个字符向量。我想通过
为了做到这一点,我使用
然而,针对我的完整数据框(可能由于其规模 - 363422行,281370个唯一snps,20888个唯一基因),这种方法并不有效,当试图加载df.2.rda时,R会崩溃。如果有任何替代方法的建议,将不胜感激!
split
函数按factor
分组数据的问题。我有一个包含两列"snps"和"gene"的数据框。其中,"snps"是一个因子,"gene"是一个字符向量。我想通过
snp
因子来分组基因,以便查看每个snp映射到的基因列表。有些snp可能映射到多个基因,例如rs10000226映射到基因345274和基因5783,而且基因会出现多次。为了做到这一点,我使用
split
函数制作了一个将每个snp映射到的基因列表。snps<-c("rs10000185", "rs1000022", "rs10000226", "rs10000226")
gene<-c("5783", "171425", "345274", "5783")
df<-data.frame(snps, gene) # snps is a factor
df$gene<-as.character(df$gene)
splitted=split(df, df$gene, drop=T) # group by gene
snpnames=unique(df$snps)
df.2<-lapply(splitted, function(x) { x["snps"] <- NULL; x }) # remove the snp column
names(df.2)=snpnames # rename the list elements by snp
df.2 = sapply(df.2, function(x) list(as.character(x$gene)))
save(df.2, file="df.2.rda")
然而,针对我的完整数据框(可能由于其规模 - 363422行,281370个唯一snps,20888个唯一基因),这种方法并不有效,当试图加载df.2.rda时,R会崩溃。如果有任何替代方法的建议,将不胜感激!
split
没有“制作每个 snp 映射到的基因列表”。它相反:按基因分组(作为split
的第二个参数)。 - Frankfactor
变量很混乱,我们无法确定哪一列是哪个类别。 - Franksplit(df$gene,df$snp)
相同。这是你要找的吗? - Frank