如何在R中的for循环中写这个?

时间:2014-11-04 12:39:15

标签: for-loop

我写了这个

pp1<-table(sip$newSS4_1 [sip$newSS4_1==1], sip$HS1C1 [sip$newSS4_1==1])
pp1=round(prop.table(pp1,1), digits=3)
pp1

我有30个变量要做。例如:

pp2<-table(sip$newSS4_2 [sip$newSS4_2==1], sip$HS1C1 [sip$newSS4_2==1])
pp2=round(prop.table(pp2,1), digits=3)
pp2

pp3 ... pp30等等。我已在数据框中newSS4_1 ... newSS4_30

如何在循环中写这个?

感谢。

1 个答案:

答案 0 :(得分:0)

好像你正在为自己做事。

  1. 为什么不使用单个列表,而不是创建30个不同名称的变量?
  2. 为什么不使用列号,而不是使用列名?
  3. pp <- list() colnums <- grep(names(sip), "newSS4_") # assuming they are in order for (i in 1:30) { cn <- colnums[i] pp[[i]] <- table(sip[,cn ] [sip[,cn]==i], sip$HS1C1 [ sip[,cn]==i ]) }

    如果您真的想要使用不同的变量,可以使用

    assign(paste0("pp", i), value)
    

    分配到例如pp1,pp2等