r - 如何格式化变量以过滤R上的元素
问题描述
v <- files[1:4]
y <- fname[1:4]
date_range <- substr(y[1], 7, 23)
如何使 v 和 y 拥有它,以便 files[1:4] 然后变成 file[5:8] 然后是 files[9:13] 等等。我认为这是一个 for 循环,但我不确定如何格式化它。此外,我如何使 date_range 使用 v 和 y 使用的第一个元素(也就是第一个元素是 1,然后是 5,然后是 9,依此类推)。
数据
# files[1:10]
files <- c("1858/FailedToProcess/TOR-D-18580907-18580908.tif",
"1858/FailedToProcess/TOR-D-18580907-18580908.tif-FailToProcess-Data.RDS",
"1858/FailedToProcess/TOR-D-18580907-18580908.tif-FailToProcess-Plot.png",
"1858/FailedToProcess/TOR-D-18580907-18580908.tif.png",
"1858/FailedToProcess/TOR-D-18580908-18580909.tif",
"1858/FailedToProcess/TOR-D-18580908-18580909.tif-FailToProcess-Data.RDS",
"1858/FailedToProcess/TOR-D-18580908-18580909.tif-FailToProcess-Plot.png",
"1858/FailedToProcess/TOR-D-18580908-18580909.tif.png",
"1858/FailedToProcess/TOR-D-18580910-18580911.tif",
"1858/FailedToProcess/TOR-D-18580910-18580911.tif-FailToProcess-Data.RDS")
# fname[1:10]
fname <- c("TOR-D-18580907-18580908.tif",
"TOR-D-18580907-18580908.tif-FailToProcess-Data.RDS",
"TOR-D-18580907-18580908.tif-FailToProcess-Plot.png",
"TOR-D-18580907-18580908.tif.png",
"TOR-D-18580908-18580909.tif",
"TOR-D-18580908-18580909.tif-FailToProcess-Data.RDS",
"TOR-D-18580908-18580909.tif-FailToProcess-Plot.png",
"TOR-D-18580908-18580909.tif.png",
"TOR-D-18580910-18580911.tif",
"TOR-D-18580910-18580911.tif-FailToProcess-Data.RDS")
这两个变量都包含超过 100000 个元素,所以我只包括了每个变量的前 10 个,但它们本质上都只是一个非常长的列表。
编辑:
i <- 1
while (i <= length(files)) {
start <- i
end <- start + 3
v <- files[start:end]
y <- fname[start:end]
date_range <- substr(y[1], 7, 23)
html_block <- make_div(v, date_range)
i <- i + 4
}
解决方案
如果我理解正确,也许这就是你要找的东西??
编辑:
for (i in 1:3) {
start <- i * 4 - 4 + 1
end <- start + 3
v <- files[start:end]
y <- fname[start:end]
date_range <- substr(y[1], 7, 23)
cat("\nstart:", start, "\t| end:", end, "\t| date_range", date_range)
}
# start: 1 | end: 4 | date_range 18580907-18580908
# start: 5 | end: 8 | date_range 18580908-18580909
# start: 9 | end: 12 | date_range 18580910-18580911
编辑2:
一种更灵活和更明确的方法来更新计数器并考虑向量的长度files
i <- 1
while (i <= length(files)) {
start <- i
end <- start + 3
v <- files[start:end]
y <- fname[start:end]
date_range <- substr(y[1], 7, 23)
cat("\nstart:", start, "\t| end:", end, "\t| date_range", date_range)
i <- i + 4
}
推荐阅读
- excel - 使用登录 MSXML2.XMLHTTP60 进行 Web 抓取
- oauth-2.0 - 为外部 API 生成访问令牌以使用 firebase 函数
- animation - SwiftUI 同步多个带有延迟的 SwiftUI 动画
- javascript - NodeJs Array.join 在数组的每个部分上都有文本
- python - 当您最终需要一个列表时,Python 生成器的内存节省功能
- python - Django 错误:“ModuleNotFoundError:没有名为‘classroom’的模块”
- c# - 如何拦截 DbContext 中的 ModelBuilder 实例?
- reactjs - Lighthouse 认为打字机动画是布局转变
- c# - Unity、C#、2D:如何将 UI 画布项(按钮)位置设置为与另一个游戏对象相同的位置?
- wordpress - 将可变产品价格范围替换为“来自:”+ WooCommerce 中使用 number_format 的最低价格