r - 如何修改字符向量以便可以使用它来索引另一个对象?(栅格或数据框)
问题描述
假设我有一个栅格对象 r(或一个数据框,因为它们可以类似地被索引)和一个字符列表 v:
v <- c("X15_X14","X15_X10","X13_X10")
我的对象“r”的名称/波段是“X1”、“X2”、...、“X14”、“X15”
我可以使用 strsplit、gsub 和 paste(或任何其他函数)的什么组合来创建一个简单的数学运算,其中列表中的“X15_X14”变为 r$X15/r$X14 或 r[[15]]/r[[ 14]]?
我想使用自动生成的列表“v”来选择要执行除法的波段/列。我有许多模型,其中训练数据已经采用这种比率格式(即 X15/X14),并且像我的列表一样命名。我将模型应用到的数据名为“X14”、“X15”,需要先应用比率,然后才能应用模型。
解决方案
我们可以使用strsplit
将 at 拆分_
为一个list
向量,然后遍历list
with lapply
,将 'r' 子集化[[
并除以
lst1 <- lapply(strsplit(v, "_"), function(x) r[[x[1]]]/r[[x[2]]])
推荐阅读
- android - 如何从 Firebase 中删除 ViewPager 项目?
- python - 从具有任意长度值的字典创建数据框(使用回收的键作为列值)
- kubernetes - Kubernetes:哪些 Ingress Controller 可以在没有 TLS 的情况下用于 grpc 服务?
- visual-studio - 如何在 Visual Studio 中使用 OpenCV Nuget 包发布我的 C# 项目?
- delphi - 将一个 Tchart 分成相等的部分,然后在 Firemonkey 中在其上绘制矩形
- python-3.x - Glade GtkFileChooserDialog 正在选择文件夹和文件
- sql - 传递变量时将 datetime 转换为 varchar 不起作用
- ios - if else 使用三元
- python - 在python中解析和转换嵌套的xml
- c++ - 将两位数转换为低内存表示的最快方法