按字符串选择列时,Dplyr 的 tbl_df 会出现意外行为

2024-01-08

通常,当以编程方式使用 dplyr 时,我希望通过名称选择列,其中列名称作为字符串存储在某个变量中。

我注意到尝试使用 dplyr 执行此操作通常会导致意外结果。这似乎是由于 tbl_df 的处理方式造成的。

以下是一些示例:

## regular data frame:
df = data.frame(subject = 1:3, resp = c(2,3,3))   # example dataframe
response_column = "resp"                     # I want to select the contents of a column with a string                       

# for loop over unique values:
unique_responses = unique(df[,response_column])
for (resp in unique_responses) {
  cat("\nA response:", resp)
}

# convert column type:
df[,response_column] = as.character(df[,response_column])
str(df) # modified the column

这些是我习惯做的事情。访问列的内容、转换它们并重新分配它们、获取它们的唯一值等。

但是当 data.frame 具有类 tbl_df 和 tbl 时,事情就不起作用了。

## with tbl_df and tbl 
require(dplyr)
df = data.frame(subject = 1:3, resp = c(2,3,3))
class(df) = c("tbl_df","tbl", class(df))
class(df)
df[,response_column] 

# for loop doesn't seem to know what to do with this:
unique_responses = unique(df[,response_column])
for (resp in unique_responses) {
  cat("\nA response:", resp)
}

# as.character seems to concatenate the entire column into one string!
df[,response_column] = as.character(df[,response_column])
df

我不确定如何看待这种行为(即故意与错误),或者一般来说,最佳实践是什么是能够在正常数据帧以及 dplyr 的数据帧中使用相同的(编程)代码。


None

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

按字符串选择列时,Dplyr 的 tbl_df 会出现意外行为 的相关文章

  • 将密度曲线拟合到 R 中的直方图

    R中有没有可以将曲线拟合到直方图的函数 假设您有以下直方图 hist c rep 65 times 5 rep 25 times 5 rep 35 times 10 rep 45 times 4 看上去很正常 但其实是歪曲的 我想拟合一条倾
  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • R read_excel:libxls 错误:无法解析文件

    我试图使用 readxl read excel 将 xls 文件读入 R 但它给出了以下错误 Error filepath data xls libxls error Unable to parse file 还尝试了 readxl exc
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 使用 dplyr:group_by 将数据帧分成多个子集?

    有没有办法根据 group by 组使用 dplyr 将一个数据帧拆分为数据帧的子集 mtcars gt group by cyl gear gt codes 非常感谢 好吧 并不是你真的想要 但你可以这样做tidyr 即nearly一样的
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 在另一个 Rmd 中运行选定的块

    我已经在源 Rmd 文件中运行了分析 并且希望仅使用few来自源的块 我已经看到了一些关于从源 Rmd 中提取所有块的答案来自另一个 Rmd 中的 Rmd 文件的源代码 https stackoverflow com questions 4
  • R 编程:如何计算数据框中两个单元格之间的差异并将它们保存在新列中

    尝试学习 R 并陷入自相关示例中 我想将 x 的差异与 y 的差异进行回归 我在数据框中有 x 和 y 并且希望将 x2 x1 的差值保存在新列 例如 dx 中 我不知道该怎么做 我拥有的 data1 x y 5 3 8 9 3 1 1 5
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • fread 将空导入为 NA

    我正在尝试导入带有空白的 csv 读取为 不幸的是他们都读作 NA now 为了更好地演示问题 我还展示了如何NA NA and 都映射到同一事物 除了最底部的示例 这将妨碍简单的解决方法dt is na dt lt gt write cs
  • 如何将此“for”循环转换为向量解

    这个问题与 将嵌入其他文本的长州名称转换为两个字母的州缩写 https stackoverflow com questions 25582518 convert long state names embedded with other te
  • 使用 R 进行项目组织 [重复]

    这个问题在这里已经有答案了 可能的重复 统计分析和报告撰写的工作流程 https stackoverflow com questions 1429907 workflow for statistical analysis and repor
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • r 中的 5 维图

    我正在尝试在 R 中绘制 5 维图 我目前正在使用rgl包以 4 个维度绘制数据 使用 3 个变量作为 x y z 坐标 另一个变量作为颜色 我想知道是否可以使用这个包添加第五个变量 例如空间中点的大小或形状 这是我的数据和当前代码的示例
  • 表单提交时出现 rvest 错误

    我想从以下网页中抓取数据 https swgoh gg u zozo collection 180 emperor palpatine https swgoh gg u zozo collection 180 emperor palpati
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti

随机推荐

  • MySQL:删除所有超过 20 小时的行

    我的表中有一个时间戳字段 如何删除超过 20 小时的记录 我的查询是 DELETE FROM tickets WHERE timestamp lt NOW INTERVAL 20 HOUR 问题 以上查询是否正确 是的 你的delete查询
  • 在允许 DTD 加载之前检查是否存在恶意 XML?

    从 libxml 2 9 开始 解析 XML 时已禁用加载外部实体 以防止XXE 攻击 http websec io 2012 08 27 Preventing XEE in PHP html 在这种情况下 为了能够在使用 PHP 的 DO
  • Android 版 iOS Quick Look 框架

    有没有类似的东西iOS 快速查看框架 http developer apple com library ios documentation QuickLook Reference QuickLookFrameworkReference iP
  • 如何避免 as.numeric() 中的“警告消息:强制引入的 NA”[重复]

    这个问题在这里已经有答案了 我有一个关于如何避免的问题NA使用时as numericR 中的函数 正如你在下面看到的 我有一个字符变量 但它的值是数字 cumulative viewers 我想通过将其转换为数字as numeric但它不能
  • 根据 Scala 语言规范,包是 AnyRef 值并且具有类型。这有什么意义呢?

    我正在通读 Scala 语言规范 并且遇到了一些令人困惑的事情 即 以下含义 包是值并且它们确实有类型 以下是我从 Scala 语言规范中得出的这个奇怪事实的结论 也许是错误的 背景 In the 类型指示符 http www scala
  • 将查询结果附加到 PostgreSQL 中的同一结果行 - Redshift

    我有一个表 有 3 列 A B C 其中 A 不是主键 我们需要为每个不同的 A 按 A 分组 选择 B C 对 并将结果附加到最终结果集的末尾 这在sql中可能吗 A B C a1 b1 c1 a1 b2 c2 a1 b3 c3 a2 b
  • 从 NSKeyedArchiver 加载 Singleton 的状态

    我有一个类 我已经将其制作成单例 并且能够使用 NSKeyedArchiver 保存它的状态 但是我无法将其状态拉出来 在我执行加载的函数中 Venue venue Venue sharedVenue NSData data NSMutab
  • 将所有连字符类型替换为 ascii 连字符“-”

    有没有办法用简单的 ASCII 替换所有类型的连字符 我正在寻找类似的适用于空间的东西 txt re sub r s txt 我相信一些非 ASCII 连字符避免了删除某些特定停用词 由连字符连接的项目名称 的正确过程 例如 我想用 AR
  • 创建顺序计数器,根据面板数据组内的条件重新启动[重复]

    这个问题在这里已经有答案了 我有一个面板数据集 我想为其创建一个计数器 该计数器随着面板中的每个步骤而增加 但每当发生某些情况时就会重新启动 就我而言 我使用的是国家 地区年份数据 并且想要计算事件之间的年份间隔 这是一个玩具数据集 其中包
  • 有浏览器实现了 DOM3 EventListenerList 吗?

    早在 2010 年 3 月 答案就是 不 浏览器事件监听器列表实现 https stackoverflow com questions 2424737 browser eventlistenerlist implementation 我想知
  • Python 相当于 LINQ All 函数?

    测试集合中的所有元素是否满足条件的惯用 Python 方法是什么 这 NET All method http msdn microsoft com en us library bb548541 aspxC 很好地填补了这个空白 有一个明显的
  • 在错误的位置包含标题 Laravel 4

    我试图首先包含 header blade php 然后包含内容 但它包含错误的方式 include site components header yield content include site components footer 渲染
  • Android 4.0 模拟器无法启动

    当尝试创建并启动 Android 4 0 模拟器时 我获得了 Android 模拟器皮肤 但操作系统似乎无法启动 我已从 Android SDK 管理器安装了 ARM EABI v7 软件包 尝试创建模拟器 但收到有关缺少 userdata
  • 正则表达式匹配不相等或不反转的数字组

    我在这里指的是这个问题的后续 正则表达式匹配两个不相等的数字 https stackoverflow com questions 5257685 regular expression to match two numbers that ar
  • Swift 3 / iOS 10 / TodayExtension - UserDefaults 始终返回 nil

    这是我在这个网站上的第一个问题 我有一个无法解决的问题 我正在开发一个带有 Today 扩展的简单笔记应用程序 我在 Swift 2 2 和 iOS 9 中没有遇到任何问题 问题只出现在 iOS 10 上的 Swift 2 3 和 Swif
  • 从 Python 访问 COM 方法

    我有一个旧的 Windows DLL 没有源代码 它实现了实用函数表 几年前 计划将其转换为 COM 对象 以便实现 IUnknown 接口 为了使用这个 DLL 有一个头文件 简化的 interface IFunctions public
  • 在编写 C 代码时如何优雅地利用 REV 和 RBIT 等 ARM 指令?

    我正在编写可以为 Arm Cortex M3 微控制器编译的 C 代码 该微控制器支持多种有用的指令 可有效操作寄存器中的位 包括 REV RBIT SXT 在编写C代码时 如果我需要那些特定的功能 如何利用这些指令 例如 我怎样才能完成这
  • Django:标记为已读“通知”

    我正在做一个学校项目 现在任何用户都可以提出问题 为了在任何用户提出问题时通知所有用户 我创建了一个新应用程序 并在提出问题时通过简单的 视图 通知他们 但这还只是普通的通知 用户打开 通知 选项卡后 如何将它们标记为已读 就像在社交网络上
  • 如何从浏览器读取客户端的机器/计算机名称?

    如何从浏览器读取客户端的机器 计算机名称 是否可以使用 JavaScript 和 或 ASP NET 您 有时 可以使用 IE 来完成此操作 因为我已经在只有 IE 的 Intranet 上的内部应用程序中完成了此操作 请尝试以下操作 fu
  • 按字符串选择列时,Dplyr 的 tbl_df 会出现意外行为

    通常 当以编程方式使用 dplyr 时 我希望通过名称选择列 其中列名称作为字符串存储在某个变量中 我注意到尝试使用 dplyr 执行此操作通常会导致意外结果 这似乎是由于 tbl df 的处理方式造成的 以下是一些示例 regular d