如何在for循环中使用计数器作为R中变量名的一部分

时间:2015-10-16 16:32:37

标签: r

我有很多data.frames命名为" day01"至"第30天和第34天;我必须应用相同的代码。我可以在每个for循环之前附加日期data.frame,但它不实用, 所以我希望在我的循环中有这样的东西

TIdCmdTCPServer

甚至对于i 1:9,我想要01 .... 09而不是只有1或9,所以它与数据框的名称相匹配

我想在同一个for循环中提取计数器,这样我就可以在POSIXct变量中使用它,比如" 2015-09-i 00:00:00"

2 个答案:

答案 0 :(得分:0)

您可以尝试使用sprintf将您的数字(即1转到01)与get结合使用,将您的角色转换回变量:

day01 <- 5
day02 <- 6
day03 <- 7
for(i in 1:3){
    tab <- get(paste0("day", sprintf("%02d", i)))
    tab <- tab + 1
    assign(paste0("day", sprintf("%02d", i)), tab)
    print(as.POSIXct(paste0("2015-09-", sprintf("%02d", i), " 00:00:00")))
}
[1] "2015-09-01 EDT"
[1] "2015-09-02 EDT"
[1] "2015-09-03 EDT"
print(c(day01, day02, day03))
[1] 6 7 8

答案 1 :(得分:0)

for(i in 1:30){ date = sprintf("%02d", i) day = paste("day",date,sep="") } 您可以在POSIXct varibale中使用循环中的变量date