我是R的新手,也是这个论坛的新手。我搜索过但不能轻易找到这个问题的答案:
我根据位置按周计算疾病病例数,存储在.csv文件中,变量名称为case.wk24,cases.wk25等。我也有每个位置的人口,并希望产生发病率(#case / population)每个位置。
我想编写一个循环,按位置为每周生成发生率,并将它们存储在名为“ir.wk24”,“ir.wk25”等的新变量中
我被困在2分:
如果它遇到一个看起来像“cases.wk”的变量,是否可以告诉R运行一个循环?在某些程序中,人们会使用星号 - cases.wk *
如何使用顺序命名生成新变量并将其存储在数据集中?
我真的很感激这方面的任何帮助 - 一整天都被互联网搜索困住了!
感谢
答案 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