【发布时间】:2017-03-30 21:56:47
【问题描述】:
当我将 as.Date 函数放入 for 循环时,它会给出不同的结果。我正在查看包含图像的子文件夹(按日期)的文件夹。我构建 date_list 来组织所有日期(用于在稍后阶段绘制选项)。儒略日从一年的一月一日开始,所以因为我有 4 年的日期,所以年份必须是灵活的。
# Set up list with 4 columns and counter Q. jan is used to set all dates to the first of january
date_list <- outer(1:52, 1:4)
q = 1
jan <- "-01-01"
for (scene in folders){
year <- as.numeric(substr(scene, start=10, stop=13))
day <- as.numeric(substr(scene, start=14, stop=16))
datum <- paste(year, day, sep='_')
date_list[q, 1] <- datum
date_list[q, 2] <- year
date_list[q, 3] <- day
date_list[q, 4] <- as.Date(day, origin = as.Date(paste(year,jan, sep="")))
q = q+1
}
输出最后一行:
[52,] "2016_267" "2016" "267" "17068"
我在 date_list[q, 4] 中缺少什么不会将我的整数转换为日期? 运行以下代码确实有效,但由于大量的场景和文件夹,我喜欢自动执行此操作:
as.Date(day, origin = as.Date(paste(year,jan, sep="")))
感谢您的宝贵时间!
【问题讨论】:
-
folders中有什么内容?我认为可能有更好的方法来实现你想要的。你应该去掉origin参数中的as.Date()调用,as.Date函数会根据需要将参数转换为日期,或者如果具体,你也应该在这里给出一个来源。 -
@Tensibai 在文件夹中是一组在 1 天和 52 天采集的卫星图像。图像名称中是存储日期:LC81730382016267LGN00。这个例子是在 2016 年第 267 天捕获的。如下: as.Date(day, origin = as.Date(paste(year,jan, sep=""))) 将在 2016-09-24 转移它,即我想要的是。但它没有成功存储在 date_list 中
-
我的意思是
dput folders会帮助你:)