为与POSIXct相关的for循环生成文件指定名称

时间:2016-04-01 15:22:36

标签: r

我尝试创建多个数据集,并在某些时间点之间增加天数。我也想给他们新的名字。但是,根据以下代码,文件名有时的格式为b2015-11-10 23:00:00。我可以通过单击r studio环境来查看它们,但文件名在代码中无效   例如,我尝试给他们一个新名字     abc< - b2015-11-10 23:00:00 但是弹出错误:错误:" abc< - b2015-12-22 23"中的意外数字常量。有任何想法吗?如果我可以在开头的for循环中分配文件名,例如a1,a2,a3 ......那就太棒了,那么我不需要再次指定名称。非常感谢!

start <- as.POSIXct("2015-08-26")
end <- as.POSIXct("2015-12-24")
for(i in seq(from=start, by=60*60*24*7, to=end)) {
      bbbi <- subset(bbact_2015day, ACT_DATE >="2015-08-26" & ACT_DATE <= i)
      class(i) <- class(start) # correct i type
      assign(paste0("b", i), aaigpa[,c(1,4,12)] )
}

1 个答案:

答案 0 :(得分:0)

如果您不担心描述性名称,可以创建一个在j循环内迭代的变量for。然后,您在j函数中使用assign

start <- as.POSIXct("2015-08-26")
end <- as.POSIXct("2015-12-24")
j = 1
for(i in seq(from=start, by=60*60*24*7, to=end)) {
    bbbi <- subset(bbact_2015day, ACT_DATE >="2015-08-26" & ACT_DATE <= i)
    class(i) <- class(start) # correct i type
    assign(paste0("b", j), aaigpa[,c(1,4,12)] )
    j = j+1
}

或者,如果您想要更具描述性的名称,可以使用:

start <- as.POSIXct("2015-08-26")
end <- as.POSIXct("2015-12-24")
for(i in seq(from=start, by=60*60*24*7, to=end)) {
    bbbi <- subset(bbact_2015day, ACT_DATE >="2015-08-26" & ACT_DATE <= i)
    class(i) <- class(start) # correct i type
    assign(paste0("b", format(i, '%Y%m%d'), #format date label
           aaigpa[,c(1,4,12)] )
}