在 dplyr tbl_df 中获取删除列的最佳实践

2024-06-28

我记得 2001 年 r-help 上的一条评论说drop = TRUE in [.data.frame是 R 历史上最糟糕的设计决策。

dplyr纠正这一点并且不会隐式删除。当尝试将旧代码转换为dplyr风格,这会引入一些讨厌的错误d[, 1] or d[1]假设为向量。

我当前的解决方法使用unlist如下图所示,得到1列向量。还有更好的想法吗?

library(dplyr)

d2 = data.frame(x = 1:5, y = (1:5) ^ 2)
str(d2[,1]) # implicit drop = TRUE
# int [1:5] 1 2 3 4 5

str(d2[,1, drop = FALSE])
# data.frame':  5 obs. of  1 variable:
#  $ x: int  1 2 3 4 5

# With dplyr functions
d1 = data_frame(x = 1:5, y = x ^ 2)
str(d1[,1])
# Classes ‘tbl_df’ and 'data.frame':    5 obs. of  1 variable:
#  $ x: int  1 2 3 4 5

str(unlist(d1[,1]))
# This ugly construct gives the same as str(d2[,1])
str(d1[,1][[1]])

你可以只使用[[提取函数而不是[.

d1[[1]]
## [1] 1 2 3 4 5

如果您在 dplyr 中使用大量管道,您可能还想使用便利功能extract and extract2来自magrittr包裹:

d1 %>% magrittr::extract(1) %>% str
## Classes ‘tbl_df’ and 'data.frame':  5 obs. of  1 variable:
##   $ x: int  1 2 3 4 5
d1 %>% magrittr::extract2(1) %>% str
##  int [1:5] 1 2 3 4 5

Or if extract对你来说太冗长了,你可以使用[直接在管道中:

d1 %>% `[`(1) %>% str
## Classes ‘tbl_df’ and 'data.frame':  5 obs. of  1 variable:
##   $ x: int  1 2 3 4 5
d1 %>% `[[`(1) %>% str
##  int [1:5] 1 2 3 4 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 dplyr tbl_df 中获取删除列的最佳实践 的相关文章

  • 如何计算两个邮政编码之间的距离?

    我有一个美国邮政编码列表 我必须计算所有邮政编码点之间的距离 它是一个 6k 邮政编码长列表 每个实体都有邮政编码 城市 州 纬度 经度 面积和人口 所以 我必须计算所有点之间的距离 即 6000C2 组合 这是我的数据示例 我已经在 SA
  • 带有 selectInputs 的 DT 数据表在选择后重置回左侧

    我在 Shiny 应用程序的 DT 数据表的列中使用 selectInputs 感谢一些帮助here https stackoverflow com questions 74620665 vertically center selectin
  • 按组渐进串联列[重复]

    这个问题在这里已经有答案了 假设我有这个输入 ID date 1 date 2 str 1 1 2010 07 04 2008 01 20 A 2 2 2015 07 01 2011 08 31 C 3 3 2015 03 06 2013
  • 在ggplot2中设置base_size时重叠轴标签

    我正在改变base size via theme set 当我在屏幕上查看结果图时 它看起来很棒 但是 当我将其另存为 pdf 时 x 轴标签有点太接近轴编号 一件小事 theme set theme bw base size 9 不会造成
  • 如何在R中绘制堆积柱形图?

    有谁知道如何使用 R 绘制由超过 1 个变量堆叠的列的直方图 就像excel中的 堆积柱形图 一样 谢谢你 我假设您确实想要一个条形图而不是直方图 在这种情况下 barplot从标准图形或barchart格子包中的两者都可以做到 或者使用
  • 通过环境.yml 文件使用 conda 安装 R 包

    通常我会创建 conda 环境 例如 conda env create f environment yml conda activate env name 通常我使用 Python 工作 典型的environment yml简单的文件可能看
  • 如何为 R 中接下来的 2 个单元格复制相同的列值[重复]

    这个问题在这里已经有答案了 我正在尝试使用 R 为列中接下来的 2 个单元格复制相同的列值 我有以下形式的数据框 Time World Cate Data 1994 Africa A 12 1994 B 17 1994 C 22 1994
  • 在 R 中提取栅格的最快方法(提高我的可重现代码的时间)

    我想知道我是否已最大化提取栅格中某个点周围缓冲区域平均值的速度 本地的性能可以进一步提高吗 I use parallel mclapply已经 我知道我可以通过在集群上设置和运行它来获得进一步的收益 使用集群或获得更多的CPU不是我正在寻找
  • 数据框中的动物园滞后差异

    我想将滞后差异的结果放回到我的数据框中 这意味着我将拥有针对不同滞后的领先 NA 我在用 new df lag1 lt diff new df Close lag 1 differences 1 arithmetic TRUE na pad
  • 是否有一个 R 函数可以获取 n 个对象取 k P(n,k) 的排列数?

    或者我必须给予 P nk lt factorial n factorial n k or P nk lt choose n k factorial k 谢谢 我不知道任何现有的功能 如果 n 较大 您的第一个建议将会失败 当编写为函数时 你
  • R 在列中按分隔符分割字符串

    我有一个包含几行的文件 例如 A B C awer ttp net Code 554 abcd ttp net Code 747 asdf ttp net Part 554 xyz ttp net Part 747 我想使用 R 仅拆分表的
  • 如何矢量化 pandas 数据框前向列值搜索

    我想仅在前向搜索 pandas 数据帧列中的目标值 如果找到更大的值 那么我想将索引差异记录为结果列 我已经设法用两个内部 for 循环来做到这一点 但速度慢得令人痛苦 这就是我想在一个简化的示例中实现的目标 import pandas a
  • 如何从 R 中的列表列表中提取元素?

    我有一堆列表 其中包含列表 广义线性模型输出 我想编写一个函数 该函数将从每个列表中提取多个元素 然后将结果组合到数据框中 我想提取modelset 1 likelihood modelset 1 fixef modelset 2 like
  • R:读取多个Excel文件,提取第一个工作表名称,并创建新列

    我有多个 Excel 文件 并且它们具有唯一的工作表名称 在我的情况下是文件创建日期 我批量阅读它们 需要将工作表名称分配给新列 id 中的每个文件 我知道如何制作数字 id 或 id 文件名 但找不到将工作表名称获取为 id 的方法 li
  • int NA 的内部表示[重复]

    这个问题在这里已经有答案了 这是关于 R 内部结构的问题 R 中如何表示整数 NA 值 与浮点不同 没有神奇的位序列来表示 NaN Create big array newer versions of R won t allocate me
  • 在 R 中将数组转换为矩阵

    我有一个数组 其中包括名为 comp 的项目 是 否 的两个熟练度变量 theta0 theta1 这需要转换为一个矩阵 有什么方法可以转换像底部那样的矩阵吗 我的数组如下所示 gt priCPT i6 comp Yes theta1 th
  • tmap 仅在 sf 几何列中绘制第一个多边形

    tmap 仅绘制 sf 几何列中的第一个多边形 但是plot 得到他们全部 一些 github 问题tmap https github com mtennekes tmap issues 360 and leaflet https gith
  • 如何在Python中按天对时间序列数据求和? resample.sum() 没有效果

    我是Python新手 如何根据日期求和数据并绘制结果 我有一个 Series 对象 其数据如下 2017 11 03 07 30 00 NaN 2017 11 03 09 18 00 NaN 2017 11 03 10 00 00 NaN
  • 如何引用基于 data.frame 中的变量的列表?

    我有一张简单的桌子emp id and job code 我想返回正确的payout基于job code 我已经用嵌套的 ifelse 来解决这个问题 但是如果我有更多怎么办job code s library dplyr set seed
  • 如何将 unicode 符号转换为 ggplot 的因子水平?

    我想在 ggplot 图例中获取一个符号 而不在比例中指定 我要这个 df lt data frame a 1 5 b factor 1 5 labels c 1 4 u2265 5 c 10 14 ggplot df aes a c co

随机推荐

  • 房间数据库:插入的ID始终为0

    我正在尝试创建列表项的房间数据库 我在这里遵循这个例子 https medium com mindorks room kotlin android architecture components 71cad5a1bb35 https med
  • Spring 排序的 beans 列表

    我有几个实现相同接口的 bean 每个 bean 都注释有 Component Order SORT ORDER public class MyClass implements BeanInterface 有一次 我自动装配了一个组件列表
  • EventMachine 的优势是什么

    这是我的测试用例 我发现EM并不比一般的TCP服务器快 EM 服务器 require rubygems require benchmark require eventmachine class Handler lt EventMachine
  • 断点在 xcode pod 文件中不起作用

    我有一个 xcode 项目 其中包含一些可可豆荚文件 当我在 cocoa pod 文件中放置断点时 调试器不会在这些断点处停止 为什么 有人对此有什么想法吗 我关注了 UdaySingh 的评论 它起作用了 我不确定他为什么没有发布答案 但
  • 基于百分比的路由算法

    四处浏览基于百分比的路由 偶然发现这个线程 https stackoverflow com a 52044571 3154233 根据建议的算法如下 对于给定模型如下 public class Host private String nam
  • 动态加载内容脚本(chrome扩展)

    我有一个 chrome 扩展 其中有 2 个由清单注入的内容脚本和一个后台脚本 manifest version 2 name Test permissions tabs
  • 假装下载文件

    我试图找到一种简单的方法来使用 Feign 下载 csv 文件 保留文件名 最简单 最干净的方法是什么 feign form github 页面上的多部分解决方案非常冗长 并且不适合我 任何帮助表示赞赏 假冒客户 import feign
  • 以编程方式在 Swift 中实现尾随和前导约束 (NSLayoutConstraints)

    我正在从 xib 添加一个视图到我的 ViewController 中 然后我将其限制真正适合它 override func viewDidAppear animated Bool super viewDidAppear animated
  • CUDA:注入我自己的PTX函数?

    我希望能够使用 PTX 1 3 中尚未在 C 接口上实现的功能 有没有办法在 PTX 中编写我自己的函数并注入到现有的二进制文件中 我正在寻找的功能是获取以下值 smid 答案 noinline device uint get smid v
  • 如何确保我的 HttpClient 4.1 不会泄漏套接字?

    我的服务器使用来自内部 Web 服务的数据根据 每个请求构建其响应 我正在使用 Apache HttpClient 4 1 发出请求 每个初始请求将导致对 Web 服务发出大约 30 个请求 其中 4 8 个套接字最终会陷入 CLOSE W
  • java中的自增和自减运算符

    我对增量和减量运算符有疑问 我无法理解为什么 java 给出这些输出 x 5 y 10 System out println z y x output is 50 x 2 y 3 z 4 System out println Result
  • 如何测量 Linux 中给定进程的活动导致的净使用磁盘空间变化?

    我想监视正在运行的进程的磁盘空间需求 理想情况下 我希望能够指向一个进程并找出由该进程引起的已用磁盘空间的净变化 在 Linux 中是否有一种简单的方法可以做到这一点 我很确定在 Solaris 中使用 DTrace 执行此操作是可行的 尽
  • Rebol 中的级联

    在标志语言中 cascade http www cs berkeley edu bh v1ch5 hof html是一个将函数与其自身组合多次的过程 它几乎就像fold用函数式语言 例子 add 4 add 4 add 4 5 gt cas
  • 一次性将所有 SQL Server 表导出为 txt 或 csv

    我有数百个 SQL Server 表需要导出到 txt 或 csv 文本限定符和 划定的 导入 导出向导一次仅允许一张表 有没有更好的方法 工具 脚本来同时完成这一切 Thanks 您可以使用以下命令对 BCP 执行某些操作 SELECT
  • 我的 PHP 脚本如何判断服务器是否繁忙?

    我想运行一个 cron 作业来进行清理 需要大量的 CPU 和 Mysql 资源 我希望它仅在服务器不相对繁忙时运行 从 PHP 中确定这一点的最简单方法是什么 例如 是否有一个查询返回最后一分钟完成了多少个查询 if function e
  • 收到 NSInvalidArguementException 错误

    我想这可能与过度释放有关 它不断崩溃if managedObjectContext save error 就像每三次调用该方法一样 当我添加 3 个练习时 更新 我注意到当我往返于不同的例程实例时会发生这种情况 2011 04 28 04
  • Dom Object被移除后,MS Edge的总内存使用量如何持续增长?

    我在 Microsoft Edge 浏览器中遇到内存 泄漏 问题 当我运行内存分析会话并拍摄多个快照时 我看到快照之间的内存被释放 但总内存消耗不断增长 见图 快照之间的内存差异在于 iframe 被添加然后从 DOM 中删除 这怎么可能
  • 出现操作错误:致命:抱歉,太多客户端已经在使用 psycopg2

    我在使用 psycopg2 时收到错误 OperationalError FATAL 抱歉 已有太多客户端 完成连接实例后 我将调用 close 方法 我不确定是什么原因造成的 这是我第一次使用 python 和 postgresql 但我
  • Microsoft Power BI - DAX 时间智能测量 - 更改上下文以反映适当的变化百分比;非年初至今措施

    我有一个 Power BI 视觉对象 如下所示 有3个矩阵 我有一个名为 Dates2 的 DateDimension 或 日历表 我使用两种度量 一种是常规度量 称为 Count 另一种是度量的并行周期比较 称为 Count Previo
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d