在R中,我如何循环数据帧?

时间:2013-04-29 10:16:24

标签: r for-loop

我正在处理几个数据框,其名称遵循以下结构:

data.bzk.18
data.bzk.19
data.bzk.20
data.bzk.21

我想使用plyr来汇总数据,并基本上在每个数据框上运行以下内容:

bzk.tot.18 <- plyr::count(data.bzk.18, c("BZNR"))

我想把循环放在所有这些上面并提出类似的解决方案

for(i in 18:21) {
  to <- paste("bzk.tot", i, sep = ".")
  assign(to, i)

  from <- paste("data.bzk", i, sep = ".")
  assign(from, i)

  to <- plyr::count(from, c("BZNR")) #totals
}

不幸的是它不起作用。我在哪里做错了?

1 个答案:

答案 0 :(得分:3)

简短的回答是,而不是:

   to <- plyr::count(from, c("BZNR")) #totals

使用:

    assign(to, plyr::count(get(from), c("BZNR")) )

并删除之前的assign语句。


很长的答案是,你可能不想这样做。最好将所有data.frames收集到列表中,然后迭代列表。