r - 将数据帧拆分为具有不等长度向量的列表
问题描述
假设我有一个像这样的 10 行 5 列的数据框
df <- data.frame(matrix(rep(1:10, 5), ncol=5))
我想将数据框拆分为一个包含 5 个长度不等的向量的列表,其中第一个向量从第一列的第一行开始,第二个向量从第二列的第二行开始,依此类推。我将提供每个向量应结束的索引。例如,如果这个索引向量是,c(3, 5, 4, 8, 10)
那么我希望列表是list(1:3, 2:5, 3:4, 4:8, 5:10)
. 谢谢!
解决方案
Map(function(x, a, b) x[a:b], df, seq_along(df), c(3, 5, 4, 8, 10))
# $X1
# [1] 1 2 3
# $X2
# [1] 2 3 4 5
# $X3
# [1] 3 4
# $X4
# [1] 4 5 6 7 8
# $X5
# [1] 5 6 7 8 9 10
推荐阅读
- rotation - 轮换的证书能否解密在轮换之前加密的值?
- java - 无法将图像上传到 Firebase
- vis.js - visjs 物理 - 删除节点时保留节点
- python - 从数据框列表创建单个熊猫数据框
- reactjs - 如何使用fabric react nav组件添加自定义html属性?
- java - 执行 .sh 文件以运行我的 java 项目时遇到错误
- html - background-image 属性未在 css 中显示图像
- c# - Visual Studio 2019 C# 桌面应用程序 .net 核心在工具箱中缺少控件
- ssl - 有没有办法在 HAProxy 中使用转发代理作为后端(包括身份验证)?
- c++ - std::fabs(a * b) 和 std::fabs(a) * std::fabs(b) 之间的区别