uniq <- unique(file[,12])
pdf("SKAT.pdf")
for(i in 1:length(uniq)) {
dat <- subset(file, file[,12] == uniq[i])
names <- paste("Sample_filtered_on_", uniq[i], sep="")
qq.chisq(-2*log(as.numeric(dat[,10])), df = 2, main = names, pvals = T,
sub=subtitle)
}
dev.off()
file[,12]
是一个整数,所以当我尝试使用by
而不是for
循环运行它时,我将它转换为一个因子,如下所示:
pdf("SKAT.pdf")
by(file, as.factor(file[,12]), function(x) { qq.chisq(-2*log(as.numeric(x[,10])), df = 2, main = paste("Sample_filtered_on_", file[1,12], sep=""), pvals = T, sub=subtitle) } )
dev.off()
按此(现在是一个因素)列对数据框进行排序可以正常工作。我的问题是,对于情节标题,我想用该列中的正确索引对其进行标记。这在 for 循环中很容易做到uniq[i]
。如何在by
函数中执行此操作?
希望这是有道理的。