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函数中执行此操作?
希望这是有道理的。