• R语言
  • forloop中, 依照colname来依次循环

data

dt <- data.frame(ID=1:20, conc=rnorm(100, 25), gene1=sample(0:2, 20, replace=TRUE),
gene2=sample(0:2, 20, replace = TRUE), gene3 = sample(0:2, 20, replace=TRUE))
geneNames = names(dt)[3:5]
for(i in geneNames)
{
boxplot(conc~as.factor(i), data=dt)
}
为什么不能循环呢? 该怎样修改呢? 请指教!

par(mfrow = c(3,1))
for(i in geneNames)
{
  boxplot(conc~dt[,i], data=dt, main = i)
}

    dapengde ? 怎么会这样。。。想了好半天!!!
    谢谢"鹏" !!!

    dapengde 那为什么不能直接用"dt$i"??
    如运行 dt$gene1 可以运行,而 dt$i 不能。 gene1 == i 成立, 那为什么dt$gene1 == dt$i 不成立??

    length(dt[,i][dt$i==0])
    [1] 0
    length(dt[,i][dt$gene1==0])
    [1] 30
    这是为什么呢?请指教!

      AILING gene1 == i 不成立。成立的是 "gene1" == igene1是个变量名,而"gene1"是个字符串。