使用 r 中的 if 语句填充列

2023-12-30

我有一个非常简单的问题,目前正在努力解决。如果我有一个示例数据框:

a <- c(1:5)  
b <- c(1,3,5,9,11)
df1 <- data.frame(a,b)

如何创建一个新列(“c”),然后使用 b 列上的 if 语句填充该列。例如: 'cat' 表示 b 中的值为 1 或 2 'dog' 表示 b 中介于 3 和 5 之间的值 'rabbit' 表示 b 中大于 6 的值

因此,使用数据帧 df1 的“c”列将显示为:cat、dog、dog、rabbit、rabbit。

提前谢谢了。


dfrm$dc <- c("dog", "cat", "rabbit")[ findInterval(dfrm$b, c(1, 2.5, 5.5, Inf)) ]

findInterval 方法将比嵌套方法快得多ifelse策略,我猜比循环未嵌套的函数要快得多if声明。当我们选择低效的算法时,我们这些处理更大数据的人确实会注意到其中的差异。

这实际上并没有解决这个请求,但我并不总是认为 R 的新用户会知道解决问题最有表现力或最有效的方法。 “使用 IF”的请求听起来像是在努力翻译两个主要宏统计处理器 SPSS 和 SAS 的典型编码方法。 Rif控制结构通常不是重新编码列的有效方法,因为其第一个位置的参数只会针对第一个元素进行计算。它本身不处理列,而ifelse函数会这样做。这cut此处可能使用了函数(使用适当的breaks and labels参数),尽管它会提供一个factor-value 而不是字符值。这findInterval选择这种方法是因为它能够返回多个级别(其中一个ifelse不能)。我认为是链接或嵌套ifelse在大约 2 或 3 层嵌套之后,它很快就会变得丑陋和混乱。

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

使用 r 中的 if 语句填充列 的相关文章

  • R - 加速近似日期匹配。 idata.frame?

    我正在努力有效地执行两个数据帧之间的 关闭 日期匹配 这个问题探索了一个解决方案 使用idata frame来自plyr包 但我也对其他建议的解决方案感到非常满意 这是两个数据框的非常简单的版本 sampleticker lt data f
  • R闪亮:在渲染表格时显示“正在加载...”消息

    在 Rstudio Shiny 中 我得到了一些renderDataTable通过 RMySQL 从数据库获取信息的调用 有些查询可能需要几秒钟才能完成 我想添加一条 正在加载 消息 其中表格将在等待时最终呈现 这个问题与这个问题类似 R闪
  • 为什么我的 3D 绘图没有显示在 R Studio 绘图查看器中?

    我通常在 RStudio 版本 1 0 44 中查看绘图时没有问题 但是当我尝试查看使用 rgl 包创建的 3D 绘图时 我的 RStudio 绘图查看器中什么也没有出现 我能够毫无问题地绘制图 汽车 散点图 这是我正在使用的代码 inst
  • 一起使用 R6 类和 foreach() %dopar% 的问题

    当与 foreach 一起使用时 我在 R6 类上遇到问题 可能与环境有关 我使用的是 Windows 假设有两个 R6 类 class1 和 class2 class1 中的 method1 依赖于 class2 例如 请参见下面的示例代
  • 如何在 nlme 与 lme4 中指定不同的随机效应?

    我想使用指定模型中的不同随机效应nlme lme 数据在底部 随机效应是 1 intercept and position变化超过subject 2 intercept变化超过comparison 这很简单 使用lme4 lmer lmer
  • 使用 R 中的晶格为 xyplot 中的每个面板添加不同的垂直线

    我有一个按年份排列的几个站点的植物物种频率图 我正在使用 grid 包中的 xyplot 绘制这些站点 我已经弄清楚如何获取每个物种位点组合的散点图 但是 我想添加一个 abline 代表进行化学处理的每年 每个地点在不同年份添加了化学处理
  • tm 包本身是否提供了组合文档术语矩阵的内置方法?

    tm 包本身是否提供了组合文档术语矩阵的内置方法 我在同一语料库上生成了 4 个文档术语矩阵 每个矩阵为 1 2 3 4 克 它们都非常大 200k 10k 因此将它们转换为数据帧然后绑定它们是毫无疑问的 我知道我可以编写一个程序来记录每个
  • 有条件地为 R 中置信带之外的数据点着色

    我需要对下图中置信带之外的数据点与带内的数据点进行不同的着色 我是否应该在数据集中添加一个单独的列来记录数据点是否在置信区间内 您能举个例子吗 示例数据集 Dataset from http www apsnet org education
  • 如何在R中将plot转换为ggplot?

    我是 R 新手 我正在尝试将绘图转换为 ggplot plot res s type n main title print lines res s res s output 2014 02 14 51 8460 2014 02 14 44
  • gridExtra 2.0.0 更改标题大小

    我知道 gridExtra 已更新 因此 我想知道如何更改标题大小 这不再有效 grid arrange a b c d ncol 2 nrow 2 main textGrob Title gp gpar fontsize 15 font
  • 导入 mgcv 失败,因为找不到 Rlapack.dll

    我想通过使用链接到 IronPython 中的 R 统计包R NET http rdotnet codeplex com 图书馆 它一直工作得很好 但现在我需要使用 R 的mgcv http cran r project org web p
  • 如何更改 ESS 中的智能分配键(“_”到“<-”)绑定

    在 emacs ESS 中 如何正确更改 ess smart S assign 的键绑定 我尝试的是添加 custom set variables ess smart S assign key to my emacs 但这让奇怪的事情发生了
  • 保存 d3heatmap 生成的热图

    我正在尝试保存由d3heatmap https github com rstudio d3heatmap转换为 pdf 文件 但文件总是损坏 library d3heatmap pdf file heat pdf d3heatmap mtc
  • 无法安装bigrf包

    我在安装 bigrf R 软件包时遇到了一些极其令人沮丧的困难 我已经尝试过以下方法 install packages bigrf repo https github com aloysius lim bigrf git type sour
  • ggplot 中的分层轴?

    我想知道是否可以在 GGLPOT2 或其他图形包 我只是更喜欢 ggplot 中制作分层 分段轴 我想要做的是获取下面的数据 制作一个堆积条形图 其中 x 轴上有周期 但在每个周期内 还有每种动物 那么每只动物内的条形颜色将是 颜色 变量
  • 使用 data.table 而不是 data.frame 进行子集化

    我正在处理一个包含 300 万行和 10 列的数据框 并且正在对其进行一些子集化 我下面有一些玩具代码 当我子集化时 需要很长时间 如果我使用 data table 和 data table 上的子集会更快吗 这是一些玩具代码 s lt c
  • 不同元素的ggplot字体大小

    我知道在创建 ggplot 图后我可以使用theme get 返回所有主题元素的详细信息 这对于弄清楚诸如此类的事情非常有帮助strip text x等等 但我有两件事无法弄清楚 1 在下面的ggplot图形中 代表短语 被土拨鼠卡住的木头
  • 从 R 文本中提取网站链接

    我有多个文本 每个文本都可能包含对一个或多个网络链接的引用 例如 text1 s 1212a as www abcd com asasa11 我如何提取 www abcd com 来自 R 中的这段文字 换句话说 我希望提取以www并结束于
  • 在 R/exams exams2nops() 中用零填充初始学生 ID

    当使用exams为 NOPS 考试生成 PDF 文件的软件包我想编辑学生可用的位数 reglength 我知道该软件包只允许至少 7 位数字 然而 我们学生的身份证号码只有5位数字 因此我想知道是否可以通过 PDF 操作来编辑模板 我尝试过
  • selectInput 的动态数量

    我是闪亮的新手 所以这可能是一个非常基本的问题 我想编写一个闪亮的应用程序 其中用户输入 n 我们得到 n 个 selectInput 选项 但我无法做到这一点 基本上任何形式的 for 循环都不起作用 我尝试的代码如下 library s

随机推荐

  • 在断言中使用“sequence.triggered”时重置感知

    我有一些断言使用triggered序列的性质 这对于检查 当 X 发生时 Y 一定在过去的某个时间发生 形式的属性很有用 让我们举一个简单的例子 给定三个信号 a b and c c仅允许在以下情况下走高 a3 个周期前为高 并且b2 个周
  • javafx 中每个 .css 文件和行的“未知属性”警告

    当我从 git 导入团队的小组项目时遇到问题 当导入到 Eclipse 时 我必须从构建路径库添加 JavaFX SDK 一旦我打开其中包含 css 文件的样式包 它们都会有每行代码下方有黄色警告线 例如 label fx font siz
  • ADO.NET 实体框架教程 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • frama-c mingw __restrict__ 关键字

    我是 Frama C 的新手 我想在Windows环境下运行它 我的编译器是gcc mingw 我尝试运行价值分析教程中的相同示例 因为我对库头文件有问题 我发现无法运行 frama c 因为restrict关键词 它显示 string h
  • 来自 sk_buff 的 IP 地址

    我正在编写一个注册 netfilter 挂钩的内核模块 我试图通过使用来获取呼叫者的IP地址sk buff gt saddr成员 有没有办法获得人类可读的 IP 即 x x x x 格式 我找到了这个功能inet ntop 但它似乎在内核头
  • 如何从 VC++ 2008 开发的 GUI 中打开帮助文件(chm 等)?

    我正在尝试为我在 VC 2008 中开发的 GUI 添加一些帮助 我想编译一个 chm 文件 或者一个可以从我的菜单访问的 hlp 文件 任何人都可以告诉我如何执行此操作吗 多谢 Under HKLM Software Microsoft
  • 如何在 Heroku 上托管的 Django 项目中使用 Werkzeug 交互式回溯调试器?

    在 Django 项目中安装了 django extensions 后 您可以在本地计算机上使用manage py runserver plus激活非常有用的 Werkzeug 调试器 这样 500 错误页面就可以让您以交互方式浏览堆栈 从
  • 如果操作未经过身份验证,expressJS 呈现登录引导模式

    我正在编写一个expressjs ejs应用程序 它使用Twitter Bootstrap 3作为网页 我使用 Bootstrap Modal 进行登录 我已将模式包含在标题部分中 因此它可用于每个网页 但是 如果用户尚未登录 则需要先进行
  • 如何捕获Kafka-Spring中的反序列化错误?

    我正在启动一个使用 kafka 消息的应用程序 我跟着Spring文档 https docs spring io spring kafka docs 2 2 4 RELEASE reference error handling deseri
  • Android-L CardView 视觉触摸反馈

    谁能向我解释一下如何在 CardView 中实现 Google I O 2014 上演示的一些视觉触摸反馈 这是我在 XML 中使用 CardView 的方式 可能缺少一些小东西 所以我只是想知道是否有人可以帮助我
  • 导入其他依赖项需要的依赖项版本[重复]

    这个问题在这里已经有答案了 我有两个箱子X and Z我想同时使用但是X依赖于取决于Z在某些特定版本上 例如 mongodb依赖于tokio 0 2 而我使用的是tokio 0 3 X不再出口Z所以我 认为 必须手动指定Z in Cargo
  • 使用 Json.Net 反序列化,将子对象反序列化为保存 json 的 string/similar?

    我正在尝试使用 Json 创建一个配置文件 该文件将保存各种类型对象的配置 考虑这个文件 cameras type Some Namespace CameraClass assembly Some Assembly configuratio
  • 更改主页按钮的长按功能

    我正在寻找 Android 技巧 来更改长按主页按钮的功能 目前 长按主页按钮打开任务管理器 相反 我希望长单击充当短单击 这意味着将我们带到默认启动器的主页 理想情况下 这个技巧适用于所有 Android 版本 但如果它仅适用于 2 3
  • 通过 C# 在 excel 中使用模板

    作为我正在生成的 C 程序的一部分 我需要生成 1 个工作簿 其中包含 2 个不同的工作表和第 3 个可以多次生成的工作表 最有效的方法是什么 我已经研究过使用模板 尽管我不确定如何重复某些工作表 同时只显示其他工作表一次 任何帮助或建议将
  • 用于从视频创建小 gif 的 Lib/API?

    我想从现有视频创建 GIF 我搜索了相关问题 但没有找到任何可以帮助我的链接 我一直在寻找任何可以帮助我从视频创建位图的库或 API 然后我将再次从该位图创建 GIF 或直接从视频创建 GIF 是否有任何库或 API 可以从视频中捕获位图序
  • 打字稿“元素类型上不存在属性”

    我将开始我的 Typescript 之旅 所以我有video在我的 Html 和中标记 ts将这些行归档 class KomakhaPlayer private container private video Element this co
  • 使用 python mechanize 通过 NTLM 身份验证登录页面

    我想使用 mechanize 登录页面并检索一些信息 但是我尝试验证它只是失败并显示错误代码HTTP 401 如下所示 r br open http intra File bui e mechanize py line 203 in ope
  • 将包含字符串的 Pandas 系列转换为布尔值

    我有一个名为df as Order Number Status 1 1668 Undelivered 2 19771 Undelivered 3 100032108 Undelivered 4 2229 Delivered 5 00056
  • JPA - 定义@Entity对象的多个jar

    我们正在以非常模块化的方式使用 Spring Hibernate 和 Maven 开发 Web 应用程序 有定义数据访问和查看特定内容的核心项目 然后有定义逻辑和实体的模块 Entity 然后是定义控制器和视图的 Web 应用程序 现在我们
  • 使用 r 中的 if 语句填充列

    我有一个非常简单的问题 目前正在努力解决 如果我有一个示例数据框 a lt c 1 5 b lt c 1 3 5 9 11 df1 lt data frame a b 如何创建一个新列 c 然后使用 b 列上的 if 语句填充该列 例如 c