如何操作data.table中的data.frame

2023-12-01

我有data.table其中某些观察列包含data.frame。例如:

data.table(colA=   c('A1','A2','A3'), 
                  colB=list(data.frame(), 
                            data.frame(colsubB1=c('B2a','B2b'),colsubB2=c('B2c', 'B2d')), 
                            data.frame(colsubB1=c('A3a','A3b'),colsubB2=c('A3c', 'A3d'))),
                  colC=   c('C1','C2','C3'), 
                  colD=   c('D1','D2','D3')
                  )

return,

   colA         colB colC colD
1:   A1 <data.frame>   C1   D1
2:   A2 <data.frame>   C2   D2
3:   A3 <data.frame>   C3   D3

我期望得到以下结果:

    colA colsubB1 colsubB2 colC colD
1:   A1     <NA>     <NA>   C1   D1
2:   A2      B2a      B2c   C2   D2
3:   A2      B2b      B2d   C2   D2
4:   A3      A3a      A3c   C3   D3
5:   A3      A3b      A3d   C3   D3

您能给一些建议吗?


Using by:

DT[, if(nrow(colB[[1L]]) > 0) 
        colB[[1L]] 
    else 
        data.frame(colsubB1=NA_character_, colsubB2=NA_character_), 
    by=setdiff(names(DT), "colB")]

output:

   colA colC colD colsubB1 colsubB2
1:   A1   C1   D1     <NA>     <NA>
2:   A2   C2   D2      B2a      B2c
3:   A2   C2   D2      B2b      B2d
4:   A3   C3   D3      A3a      A3c
5:   A3   C3   D3      A3b      A3d

data:

library(data.table)
DT <- data.table(colA=   c('A1','A2','A3'), 
    colB=list(data.frame(), 
        data.frame(colsubB1=c('B2a','B2b'),colsubB2=c('B2c', 'B2d')), 
        data.frame(colsubB1=c('A3a','A3b'),colsubB2=c('A3c', 'A3d'))),
    colC=   c('C1','C2','C3'), 
    colD=   c('D1','D2','D3')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何操作data.table中的data.frame 的相关文章

  • 逻辑回归/二项式的 glmnet 误差

    当尝试将 glmnet 与 family binomial 配合以进行逻辑回归拟合时 出现此错误 gt data lt read csv DAFMM HE16 matrix csv header F gt x lt as data fram
  • 如何将此“for”循环转换为向量解

    这个问题与 将嵌入其他文本的长州名称转换为两个字母的州缩写 https stackoverflow com questions 25582518 convert long state names embedded with other te
  • C# 问题:加载 .MDB 文件、对其进行更改并将更改保存回原始文件的最简单方法是什么?

    我正在进行的项目即将完成 我正在加载一个 MDB 文件 在 DataGrid 上显示内容 并尝试在 DataGrid 上获取这些更改并将它们保存回 MDB 文件中 我还将创建一个函数 允许我从一个 MDB 文件中获取表并将其保存到另一个 M
  • 解析时区并转换为夏令时

    我有一个 pandas 数据框Datetime column Datetime 0 2019 01 01 17 02 00 1 2019 01 01 17 03 00 2 2019 01 01 17 04 00 3 2019 01 01 1
  • r 中的 5 维图

    我正在尝试在 R 中绘制 5 维图 我目前正在使用rgl包以 4 个维度绘制数据 使用 3 个变量作为 x y z 坐标 另一个变量作为颜色 我想知道是否可以使用这个包添加第五个变量 例如空间中点的大小或形状 这是我的数据和当前代码的示例
  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • GGPLOT2:如何在 ggplot() 脚本中绘制特定选择

    这是一个名为的大型数据集的峰值P 其中有 10 个优惠 CS 有不同的商店 SHP 具有多个数值 数据集列出了按周排序的它们 WK 2 tm 52 它创建一个大文件 仅前 6 行出现峰值 WK MND CS SHP RevCY RevLY
  • 如何从shiny中将数据下载到多张纸上?

    我们如何将数据从 Shiny 下载到多个工作表并命名每个工作表 例如下面 ginberg将mtcars数据保存在sheet1中 我们可以将头部 mtcars 保存在sheet2中吗 另外 我们可以对这些工作表进行不同的命名吗 例如sheet
  • 如何从R arrow中的feather文件中读取列名和元数据?

    现已取代 独立R 的羽毛库 https github com wesm feather有一个函数叫做feather metadata 允许从磁盘上的羽毛文件中读取列名称和类型 而无需打开它们 当在 R 中加载羽毛文件时 这对于仅选择特定列很
  • 为什么 \K 似乎消耗了基本 R 的 gsub 中的一个字符

    这是一个示例字符串 bcadefgh 我希望我能匹配除了 cad 具有以下模式 wa w K w 如果我想替换所有不是的东西 cad 我可以用gsub 像这样gsub wa w K w bcadefgh perl TRUE 但是这输出 ca
  • 更改计划的开始日期以优化资源

    我有很多工作需要在特定的时间间隔执行 然而 我们每天完成这项工作的资源有限 因此 我正在尝试优化开始时间日期 开始时间日期只能向前移动 不能向后移动 以便每天使用的资源与我们的预算更加不相似 这些函数在下面的示例中使用 Function t
  • 提取部分字符串值,创建新的列名称,并使数据框宽

    我想提取字符串列的最后一部分 始终用方括号括起来 将它们作为新列的名称 然后将数据从长调整为宽 并用这些值填充新列 例如 如果我有这个数据框 whatihave lt data frame v1 c abc effort def effor
  • 2 列 pandas 上的地图

    我有一个数据框 如下所示 Col1 Col2 0 A PY 1 B PA 2 C PB 3 B PB 以及这个系列 Value Col1 Col2 A PY 20 B PB 30 我想做一个映射 如果该系列有一个索引 仅前 Col1 那么它
  • DataFrame 在函数内部修改

    我面临一个我以前从未观察到的函数内数据帧修改的问题 有没有一种方法可以处理这个问题 以便初始数据帧不被修改 def test df df tt np nan return df dff pd DataFrame data 现在 当我打印时d
  • 使用许多特殊字符将 R 连接到 HANA 数据库时出现问题

    我在将 HANA 数据读入 R 时遇到问题 我已通过以下方式建立了连接 ch lt odbcConnect HANA uid USER pwd PW 并确认我已通过以下方式连接 sqlTables ch 这会调出我的表格列表 对我想要拉取的
  • R中将矩阵拆分为子矩阵的函数

    我有一个 16 行 12 列的矩阵 M 我想将其拆分为 16 个矩阵的数组 每个矩阵有 4 行 3 列 我可以通过以下方式手动完成 M matrix sample 0 127 16 12 replace TRUE c 16 12 ma1 M
  • 在 R 中使用 nls 重新创建研究

    我正在学习如何在 R 中使用 nls 函数 但遇到了一些问题 我现在只是试图重新创建研究论文中发现的曲线 该模型拟合了 1987 年崩盘前股市走势的曲线 我定义了一个函数func 如下 func lt function a b tc t a
  • 从 pandas 数据框中绘制堆积条形图

    我有数据框 payout df head 10 复制以下 Excel 绘图的最简单 最智能和最快的方法是什么 我尝试过不同的方法 但无法让一切都到位 Thanks 如果您只想要一个堆积条形图 那么一种方法是使用循环来绘制数据框中的每一列 并

随机推荐

  • 读取Excel文件工作表名称

    我有一个导出过程 可将数据从 Access 表传输到 Excel 文件 有几次我遇到了问题 该过程没有在 Excel 中生成一张或多张工作表 1 张工作表 1 个表格 因此 当传输完成后 我希望 Access 检查所有工作表是否都位于 Ex
  • 如何解析具有浏览器兼容性的可编辑 DIV 文本

    我将 div 设为可编辑 当我尝试解析 div 的文本时 我需要执行以下正则表达式 innerDOM div I had downloaded all the material from the Intern br You will fin
  • AngularJS ng-options 选定值的问题

    在 AngularJS 中使用 ng options 时 我遇到了一个奇怪的问题 我的场景非常简单 与 ng model 绑定一个值作为所选选项 从后端加载 选择 的值 将加载的值绑定到 select 我从后端加载的对象是一个键 值 例如
  • Access SQL - 插入多行不起作用

    INSERT INTO EMP 1 EMP NUM EMP LNAME EMP FNAME EMP INITIAL EMP HIREDATE JOB CODE VALUES 101 News John G 08 Nov 00 502 102
  • 如何在 fancybox V2 中为 iframe 设置不同的高度/宽度?

    我一直在使用 Fancybox 1 3 4 就在那里 我在链接本身中有 iframe 的尺寸 这是我如何拥有它的一个例子 test html width 675 height 470 当我单击链接 fancybox 时 将打开具有这些尺寸的
  • 在 Fortran 90 中打开多个文件

    我想打开 10 000 个文件 文件名从abc25000 until abc35000并将一些信息复制到每个文件中 我写的代码如下 PROGRAM puppy IMPLICIT NONE integer i CHARACTER len 3
  • 在 XNA 中沿着曲线路径制作 Sprite 动画

    我想在 XNA 游戏中实现弹道轨迹 并试图找出使弹丸遵循重力曲线的最佳方法 我能想到的最好的办法是首先计算曲线并存储在 Curve 类中 然后让精灵沿着那条曲线移动 但我无法真正弄清楚如何沿着该曲线实际移动精灵 我该怎么做 或者有更好的方法
  • 如何在scrollview中滚动RecyclerView

    如何在scrollview中滚动RecyclerView上方的所有内容 我必须在滚动视图中实现 RecyclerView 如下代码所示 但不能滚动 RecyclerView 请给出答案
  • Delphi - 使用 ListView 拖放

    晚上好 我有这个代码可以使用拖放方法用于files TForm1 class TForm public procedure DropFiles var msg TMessage message WM DROPFILES end proced
  • Azure 事件网格 Blob 存储 - 防止重复 Blob 创建事件?

    我在周五的客户测试期间注意到 Blob 存储事件有一点奇怪的行为 现在我想知道是否存在导致双事件 创建 Blob 的已知情况 因此基本上外部应用程序将 blob 写入容器 大多数 blob 像往常一样只触发一个 blob 创建的事件 但由于
  • 如何在 tkinter 中访问不同类的变量?

    我已经搜索了很多 但我仍然不知道如何访问 python 中不同类的变量 在这种情况下我想访问变量self v from PageOne上课到PageTwo class 这是我的代码 import tkinter as tk import s
  • 如何将查询字符串值从 AWS API Gateway 传递到 Lambda C# 函数

    我有一个 C 方法 已成功将其发布为 AWS Lambda 函数 它看起来像这样 public class MyClass public async Task
  • 如何序列化运行时添加“属性”到Json

    我实现了在运行时向具有特殊 SystemComponent PropertyDescriptor 的对象添加 属性 的可能性 由于这些属性只能通过 ComponentModel TypeDescriptor 访问 而不能通过反射访问 因此这
  • 如何检查Access数据库表中是否存在特定列

    我想知道如何检查特定列 例如 日期 是否存在于特定表 例如 myTable 中Access数据库 我读了这个答案它提供了一个查询 该查询会产生另一个查询 IF NOT EXISTS SELECT FROM sys columns WHERE
  • 在R中如何将经度和纬度转换为可在ggplot2或ggmap中使用的格式[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我得到了原始经度 纬度数据 其格式无法由 R 地图处理 所以我想知道是否有一些 R 函数或算法可以帮助我将这些原始数据转换为可读格式 也许是UTM 这是我的原始数据 纬度 32 14
  • 如何正确处理来自 ListenableFuture 番石榴的异常?

    我有一个库 其中为我们的客户提供了两种方法 同步和异步 他们可以调用他们认为适合其目的的任何方法 执行 Synchronous 等待直到得到结果 然后返回结果 execute Asynchronous 立即返回一个 Future 如果需要
  • 如何使用 Kafka 流 DSL 函数处理重复消息

    我的要求是跳过或避免使用 kafka 流 DSL API 从 INPUT 主题接收到的重复消息 具有相同的密钥 如果发生任何故障 源系统可能会向 INPUT 主题发送重复的消息 FLOW 源系统 gt 输入主题 gt Kafka Strea
  • Misra-C 2012 规则 10.1 布尔操作数在表达式为布尔类型的情况下使用

    以下几行会产生 Misra 违规 unsigned int u16 a unsigned char u8 b if u16 a u8 b Generates Misra C 10 1 violation u16 a 2 1 Generate
  • tidyr::收集不同类型的多个列

    我的问题类似于这个问题 我试图tidyr gather多列 但是 链接中提供的解决方案不太理想 因为所有列的属性通常不相同 因此它们被删除 请注意 我知道如何使用基本 R 执行此操作 但我正在尝试学习如何使用 tidyr 和 或 dplyr
  • 如何操作data.table中的data.frame

    我有data table其中某些观察列包含data frame 例如 data table colA c A1 A2 A3 colB list data frame data frame colsubB1 c B2a B2b colsubB