使用data.table在每组数据后面插入一行NA

2023-11-21

我试图在每组数据之后添加一行 NAR.

之前已经有人问过类似的问题。每组数据后插入一个空行.

在这种情况下,接受的答案也可以正常工作,如下所示。

group <- c("a","b","b","c","c","c","d","d","d","d")
xvalue <- c(16:25)
yvalue <- c(1:10)
df <- data.frame(cbind(group,xvalue,yvalue))
df_new <- as.data.frame(lapply(df, as.character), stringsAsFactors = FALSE)
head(do.call(rbind, by(df_new, df$group, rbind, NA)), -1 )
     group xvalue yvalue
a.1      a     16      1
a.2   <NA>   <NA>   <NA>
b.2      b     17      2
b.3      b     18      3
b.31  <NA>   <NA>   <NA>
c.4      c     19      4
c.5      c     20      5
c.6      c     21      6
c.41  <NA>   <NA>   <NA>
d.7      d     22      7
d.8      d     23      8
d.9      d     24      9
d.10     d     25     10

我怎样才能使用加速这个data.table对于大数据框?


你可以尝试

df$group <- as.character(df$group)
setDT(df)[, .SD[1:(.N+1)], by=group][is.na(xvalue), group:=NA][!.N]
#     group xvalue yvalue
#1:     a     16      1
#2:    NA     NA     NA
#3:     b     17      2
#4:     b     18      3
#5:    NA     NA     NA
#6:     c     19      4
#7:     c     20      5
#8:     c     21      6
#9:    NA     NA     NA
#10:    d     22      7
#11:    d     23      8
#12:    d     24      9
#13:    d     25     10

或者按照@David Arenburg 的建议

 setDT(df)[, indx := group][, .SD[1:(.N+1)], indx][,indx := NULL][!.N]

Or

 setDT(df)[df[,.I[1:(.N+1)], group]$V1][!.N]

或者可以根据@eddi的评论进一步简化

 setDT(df)[df[, c(.I, NA), group]$V1][!.N]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用data.table在每组数据后面插入一行NA 的相关文章

随机推荐

  • 要列出的 Pandas DataFrame 列[重复]

    这个问题在这里已经有答案了 我根据另一列中满足的条件从一列中提取数据子集 我可以得到正确的值 但它在 pandas core frame DataFrame 中 我如何将其转换为列表 import pandas as pd tst pd r
  • 从 android 将 JSONArray 发布到 WCF 服务

    我在将 JSONArray 值发布到我的 WCF 服务时遇到问题 当我从 Fiddler 或 Net Test Client 发布数据时 它工作正常 每次我尝试从我的 Android 应用程序发布时 我都会收到请求错误 这是我从 Andro
  • 如何在 MySQL 中正确使用 CASE..WHEN

    这是一个演示查询 注意它非常简单 仅在 base price 为 0 的情况下获取 但它仍然选择条件 3 SELECT CASE course enrollment settings base price WHEN course enrol
  • 如何在共享主机上安装 Composer?

    我有这些东西 文件http api odtu lu composer phar http api odtu lu phpinfo php FTP 访问 cPanel FreeBSD 上的 Cron 作业 PHP Perl CGI BIN P
  • Python 相当于 Ruby 的 .select

    我有一个列表 数组 我们称之为x 我想创建一个新的列表 数组 我们称之为这个z 从元素中x符合某种条件 在 Ruby 中 您可以通过调用列表 数组上的 select 方法来做到这一点 如下所示 x 1 2 3 4 5 6 7 8 9 10
  • 延迟加载单例:双重检查锁定与按需初始化持有者习惯用法

    我需要在并发环境中延迟加载资源 加载资源的代码应该只执行一次 Both 双重检查锁定 使用 JRE 5 和 volatile 关键字 和按需初始化持有者习惯用法似乎很适合这份工作 仅通过查看代码 按需初始化持有者习惯用法似乎更干净 更高效
  • Android onTouch 与 onClick 和 onLongClick

    我有一个自定义视图 其作用类似于按钮 我想在用户按下它时更改背景 当用户将手指移到外面或释放它时将背景恢复为原始状态 我还想处理 onClick onLongClick 事件 问题是 onTouch 要求我返回 trueACTION DOW
  • asp.net 5 mvc 6 loginUrl更改路径

    在 VS 2015 WebApplication 中创建新项目时 如果未授权 您将如何更改重定向登录 URL 路径 我创建了一个新区域 在其中创建了一个登录控制器 此登录控制器要求您获得授权 但是当尝试访问这些页面时 我被重定向到 Acco
  • UIViewContentMode模式指的是什么类型的内容?

    根据 UIView 的官方文档contentMode财产 The content mode specifies how the cached bitmap of the view s layer is adjusted when the v
  • 将操作栏更改为从 Fragment 内覆盖

    我有一个片段 片段 1 它被另一个片段 片段 2 替换 片段 1 被放置在堆栈上 我正在使用兼容模式 不是 ActionBarSherlock 这是我的问题 我希望操作栏在某些片段中显示为叠加 但在其他片段中则不然 具体来说 当显示片段 2
  • Ruby:在结构体中定义常量的语法

    考虑以下 正确的 Ruby 程序 class Outer Inner Struct new dummy do CONST abce def fun puts dummy end end end obj Outer Inner new 15
  • 最难逆向的 JavaScript 混淆器 [重复]

    这个问题在这里已经有答案了 我正在寻找目前最难逆向的 JavaScript 混淆器 如果它可以在自己的服务器上运行 则会加分 性能下降和代码膨胀都很好 用 Java 编写 然后使用混淆后的 JavaScript 运行字节码orto 这需要两
  • 如何将 Enum 的成员放入全局命名空间?

    Python 现在有一个 Enum 类型 3 4 中新增 与 PEP 435 还有向后移植 虽然命名空间是一件好事 但有时枚举更像常量 并且枚举成员应该位于全局 呃 模块 命名空间中 所以而不是 Constant Enum PI 3 14
  • JavaMail 与 MS Exchange:服务器和客户端均不支持身份验证机制

    我已经尝试从 Grails 应用程序发送邮件好几天了 但没有成功 我在用着 圣杯 1 3 7 邮件1 0插件 spring security core 1 2 6 插件 雄猫7 0 23 具体来说 我尝试从 Tomcat 服务器上部署的应用
  • 如何使用Vuejs在html中显示mysql blob图像?

    我有一个这样的 vue 文件 export default data return info name image errors created function this getInfo methods getInfo function
  • 应用程序 yml 属性的 Spring SpEL 表达式求值

    我正在尝试使用 Spring SpEL 表达式派生 application yml 配置文件中的属性值 但看起来该表达式没有被评估 这是我的 application yml 片段 spring profiles local cloud cl
  • Python 2.7 & ANTLR4:使 ANTLR 在无效输入时抛出异常

    我想捕获像这样的错误 line 1 1 extraneous input r n expecting line 1 1 mismatched input Vaasje expecting Tafel 我尝试将我的函数包装在 try catc
  • RuntimeError:针对 API 版本 a 编译的模块,但此版本的 numpy 是 9

    Code import numpy as np import cv Console gt gt gt runfile Users isaiahnields spyder2 temp py wdir Users isaiahnields sp
  • 从 Android Wear 心率传感器读取底层颜色/灯光数据?

    我想读取 Android Wear 智能手表上的心率传感器数据 这文档看起来心率传感器只报告两件事 心率 每分钟心跳次数 准确度测量或错误代码 是否可以获取Android Wear心率传感器的底层数据 即红光量 或绿光或蓝光 在任何时间点
  • 使用data.table在每组数据后面插入一行NA

    我试图在每组数据之后添加一行 NAR 之前已经有人问过类似的问题 每组数据后插入一个空行 在这种情况下 接受的答案也可以正常工作 如下所示 group lt c a b b c c c d d d d xvalue lt c 16 25 y