R data.table 按组创建列表列

2024-05-25

我有一个data.table下面,我想将一个函数应用于列v2通过...分组v1 and order,结果列v3应该是下面的向量列表。

如何编写这个函数,以便它为每个组的第一行返回一个 0 向量(order == 1 & v1 %in% c(1, 2))。对于组中的每个后续行,向量将附加前一行的v2向量右侧的值,同时剔除一个0从左边。

Initial data.table

t3 <- data.table(
  v1 = rep(1:2, each = 5),
  order = rep(1:5, 2),
  v2 = c(6, 9, 6, 8, 6, 2, 5, 7, 8, 2)
)

    v1 order v2
 1:  1     1  6
 2:  1     2  9
 3:  1     3  6
 4:  1     4  8
 5:  1     5  6
 6:  2     1  2
 7:  2     2  5
 8:  2     3  7
 9:  2     4  8
10:  2     5  2

应用该功能...

output:

t3[, v3 := list(c(0, 0, 0, 0, 0),
                c(0, 0, 0, 0, 6),
                c(0, 0, 0, 6, 9),
                c(0, 0, 6, 9, 6),
                c(0, 6, 9, 6, 8),
                c(0, 0, 0, 0, 0),
                c(0, 0, 0, 0, 2),
                c(0, 0, 0, 2, 5),
                c(0, 0, 2, 5, 7),
                c(0, 2, 5, 7, 8))]

    v1 order v2        v3
 1:  1     1  6 0,0,0,0,0
 2:  1     2  9 0,0,0,0,6
 3:  1     3  6 0,0,0,6,9
 4:  1     4  8 0,0,6,9,6
 5:  1     5  6 0,6,9,6,8
 6:  2     1  2 0,0,0,0,0
 7:  2     2  5 0,0,0,0,2
 8:  2     3  7 0,0,0,2,5
 9:  2     4  8 0,0,2,5,7
10:  2     5  2 0,2,5,7,8

我们可以尝试

t3[order(order), .(order, v2, shift(v2, 5:1, fill = 0)), by = v1]

Output:

    v1 order v2        V3
 1:  1     1  6 0,0,0,0,0
 2:  1     2  9 0,0,0,0,6
 3:  1     3  6 0,0,0,6,9
 4:  1     4  8 0,0,6,9,6
 5:  1     5  6 0,6,9,6,8
 6:  2     1  2 0,0,0,0,0
 7:  2     2  5 0,0,0,0,2
 8:  2     3  7 0,0,0,2,5
 9:  2     4  8 0,0,2,5,7
10:  2     5  2 0,2,5,7,8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R data.table 按组创建列表列 的相关文章

随机推荐

  • 退回电子邮件处理值得吗?

    我们有一个网络应用程序 在电子邮件通知方面没有什么特别的 很高兴知道最终用户输入的电子邮件地址是否错误并且向该地址发送的邮件是否是炸弹 在垃圾邮件感染电子邮件的现代世界中 是否仍然值得尝试捕获退回邮件 在当今的邮件服务器配置中 通常认为最好
  • 使用WordPress get_results()数据库函数是否可以防止sql注入

    似乎找不到答案 但想知道以下对数据库的查询是否容易受到 SQL 注入的攻击 searchPostResults wpdb gt get results querySearchVals OBJECT 这是使用的查询 global wpdb o
  • 使用 XLSX.readFile 读取文件

    在 Typescript 中 执行时出现错误 无法读取未定义的属性 替换 const xlsx XLSX readFile fileName filename 是现有文件的路径 我读过 readFile https docs sheetjs
  • 如何解决输入字段上的错误行高?

    如何为具有固定高度的输入字段提供其所包含文本的跨浏览器垂直对齐方式 截至目前看来line height是我最好的选择 但是 在 Chrome 或 Safari 等 webkit 浏览器上 复制 粘贴时光标会跳至顶部对齐 我注意到 WordP
  • Android WebView setCertificate 问题 SSL 问题

    我看过很多关于 SSL 错误的帖子和信息 并且我自己也偶然发现了一个 我尝试使用 GlobalSign CA BE 证书通过 Android WebView 访问网页 但收到不受信任的错误 对于大多数手机来说 处理这个问题效果很好 只需告诉
  • 为什么Python 3中实例方法可以作为类方法调用?

    考虑下面的类 class Foo object def bar self print self 在Python 2中 2 7 13 调用bar 作为类方法引发异常 gt gt gt Foo bar hello Traceback most
  • 写入作为 Jar 文件中的资源包含的 Java 属性文件

    有没有办法修改作为资源存储在 Jar 文件中的属性文件中的属性值 这就是我正在尝试处理的场景 我有一个属性文件作为资源存储在我的 Jar 文件中 有一些系统特定的属性 例如路径 我希望能够为我想要运行 Jar 文件的系统更改此设置 最好的解
  • 通过 PHP 将 CSV 导入 MYSQL

    我正在将 CSV 文件导入到我的管理区域 并且我想将文件添加到我的数据库中 我的 PHP 代码import php is
  • 通过设备路径或句柄获取USB磁盘驱动器盘符

    我的目标是编写一个 c dll 用 MinGW 编译 它能够搜索连接到计算机的某些型号的 USB 记忆棒并提供序列号 供应商 ID 产品 ID 和驱动器号 我在互联网上搜索了几个小时 但找不到适合我的方法 我正在使用设置 Api 来获取所有
  • Java Sound可以用来控制系统音量吗?

    Java 声音优惠FloatControl各种声音线路功能的实例 以及MASTER GAIN http docs oracle com javase 7 docs api javax sound sampled FloatControl T
  • NodeJS 中的密码重置

    我已经设置使用 NodeJS Passport 更新用户的密码 我遵循了这个很棒的指南 http sahatyalkabov com how to implement password reset in nodejs http sahaty
  • 为什么在对等互连后无法从另一个 VPC 中的 EC2 实例连接 AWS RDS 实例

    我在 VPC A 中的 EC2 实例上运行 Tableau Server 同时 我在另一个 VPC B 中创建了 postgres RDS 现在我想在 Tableau Server 和 RDS 之间建立连接 RDS VPC的CIDR为172
  • 如何将两个 APK 合并为一个,以便两个应用程序可以同时安装

    如何将 2 个 Android 应用程序合并到捆绑包中 以便在安装捆绑包时同时安装两个应用程序 我想将 2 个 APK 合并到一个捆绑包中 以便我可以将其上传到 Android Market 当有人将其安装到设备上时 这两个应用程序都应该安
  • 委托和接口如何互换使用?

    我可以使用接口方法代替委托吗 如何 我发现搜索接口方法比使用委托更快 我希望有一个简单的代码片段 理论上 可以通过包含单个方法的接口 例如 Java 没有委托 来完成委托完成的所有工作 然而 它使代码变得更加冗长并且没有带来什么好处 话又说
  • 在 jQuery 中填充文本框时执行 JavaScript 函数?

    当文本框填充文本时 如何在 JavaScript 中执行函数 文本框对用户隐藏 它将由 USB 磁卡刷卡器填充 伪代码
  • 从沙箱中的帮助应用程序读取 NSUserDefaults

    我找到了一些阅读资源NSUserDefaults另一个应用程序的 Objective C NSUserDefaults 缓存会阻止其他应用程序准确读取更改 https stackoverflow com questions 10667848
  • 使android listview布局可滚动

    我有一个 xml 文件 其布局为 ASCII 形式 ImageView TextView List
  • 如何在 C# 中启动文件

    编辑 我觉得自己像个白痴 我有一种感觉 像下面的答案会起作用 但没有看到任何与下面的答案类似的谷歌结果 所以当我看到这段复杂的代码时 我想它一定是这样的 我搜索并找到了这个Windows 列出并启动与扩展关联的应用程序 https stac
  • 如何管理微服务故障?

    比方说 我有几个微服务 REST API 问题是 如果一项服务无法访问 我们称之为服务 A 发送到服务 A 的数据将保存在临时数据库中 服务工作后 数据将再次发送 问题 1 我应该创建每 10 秒 ping 一次服务 A 的服务来了解服务是
  • R data.table 按组创建列表列

    我有一个data table下面 我想将一个函数应用于列v2通过 分组v1 and order 结果列v3应该是下面的向量列表 如何编写这个函数 以便它为每个组的第一行返回一个 0 向量 order 1 v1 in c 1 2 对于组中的每