2

我是 R 新手,也是这个论坛的新手。我已经搜索但无法轻易找到这个问题的答案:

我有根据位置按周计算的疾病病例数,存储在具有变量名 case.wk24、cases.wk25 等的 .csv 文件中。我还有每个位置的人口,并且想要生成发病率(# 个病例/population) 用于每个位置。

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

我被困在2点:

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

  2. 然后我如何生成具有顺序命名的新变量并将它们存储在数据集中?

我真的很感谢这方面的任何帮助——整天都被互联网搜索困住了!

谢谢

4

1 回答 1

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
于 2012-08-01T22:45:06.447 回答