r - R:如何使用成对的开始、结束行序列序列创建 data.table 的动态子集
问题描述
IE 根据行索引将数据表拆分为动态数量的可变块
我正在尝试按行索引将 data.table 拆分为块。
数据是动态的,块的数量可能会发生变化和大小变化。
例如:
MyDT 是一个 2675 行、98 列的数据表。
我已经确定对于这个数据集,我希望第 3-796、802-857、936-952 和 1206-2623 行作为它们自己的单独块,我可以调用/保存为单独的变量/等。
我希望脚本是动态的,不需要手动输入索引。我目前可以找到任何长度和数量的块,我只是无法将它们导出到一个干净的数组/列表中。即块 1 是 DAT[1] ,块 2 是 DAT[2] ,依此类推
[好奇的背景,我正在从一个仪器将数据导入 R,该仪器将来自多个实验的数据输出到一个“杂乱”的文本文件中。我将数字、矩阵形式的数据与其他杂乱的输出分开。有时我的数据文件包含来自 2 个实验、3、4 等的信息...]
解决方案
如果我们想将它存储在 a 中list
,请创建一个“开始”、“结束”向量序列,使用它来对 data.table 进行子集化Map
library(data.table)
start <- c(3, 802, 936, 1206)
end <- c(796, 857, 952, 2623)
lst_out <- Map(function(i, j) MyDT[i:j], start, end)
推荐阅读
- java - 我如何使用@FeginClient 将系统文件发送到另一个 api
- python-3.x - 我如何通过定义函数在python中对两个值求和,并且用户在打印级别代码中输入的内容必须只有四行
- azure - 使用用户界面执行 Azure DevOps 管道
- python - 无法在 python 套接字中读取 POST 请求的服务器响应
- r - 读取 txt 文件,其中每 n 行开始一个新行,由特殊字符分隔
- html - 如何使 HTML iframe 表单目标成为另一个 iframe
- ios - 斯威夫特/CallKit。是否可以通过自定义 UI 通知 CallKit 接受来电?
- javascript - 悬停时停止循环并显示相应的图像,鼠标移出时继续循环
- postgresql - PostgreSQL - 完整数据库中的可用空间
- vue.js - BootstrapVue - 在选择选项上使用工具提示?