为具有相似名称的所有变量创建循环

时间:2012-07-20 15:54:51

标签: r variables loops

我是R的新手,也是这个论坛的新手。我搜索过但不能轻易找到这个问题的答案:

我根据位置按周计算疾病病例数,存储在.csv文件中,变量名称为case.wk24,cases.wk25等。我也有每个位置的人口,并希望产生发病率(#case / population)每个位置。

我想编写一个循环,按位置为每周生成发生率,并将它们存储在名为“ir.wk24”,“ir.wk25”等的新变量中

我被困在2分:

  1. 如果它遇到一个看起来像“cases.wk”的变量,是否可以告诉R运行一个循环?在某些程序中,人们会使用星号 - cases.wk *

  2. 如何使用顺序命名生成新变量并将其存储在数据集中?

  3. 我真的很感激这方面的任何帮助 - 一整天都被互联网搜索困住了!

    感谢

1 个答案:

答案 0 :(得分:0)

x <- data.frame(case.wk24=c(1,3),case.wk25=c(3,2), pop=c(7,8))

weeks <- 24:25
varnames <- paste("case.wk", weeks, sep="")
ir <- sapply(varnames,FUN=function(.varname){
    x[,.varname]/x[,"pop"]
})
ir <- as.data.frame(ir)
names(ir) <- paste("ir.wk", weeks, sep="")
x <- cbind(x,ir)
x