Dataframe 根据其他列创建新列

2024-04-18

我有一个数据框:

df <- data.frame('a'=c(1,2,3,4,5), 'b'=c(1,20,3,4,50))
df
    a    b
1   1    1
2   2   20
3   3    3
4   4    4
5   5   50

我想根据现有列创建一个新列。像这样的事情:

if (df[['a']] == df[['b']]) {
  df[['c']] <- df[['a']] + df[['b']]
} else {
  df[['c']] <- df[['b']] - df[['a']]
}

问题是if仅检查第一行的条件...如果我从上面创建一个函数if声明然后我使用apply() (or mapply()...), 这是相同的。

在 Python/pandas 中我可以使用这个:

df['c'] = df[['a', 'b']].apply(lambda x: x['a'] + x['b'] if (x['a'] == x['b']) \
    else x['b'] - x['a'], axis=1)

我想要 R 中类似的东西。所以结果应该是这样的:

    a    b    c
1   1    1    2
2   2   20   18
3   3    3    6
4   4    4    8
5   5   50   45

一种选择是ifelse这是矢量化版本if/else。如果我们对每一行都这样做,if/else正如OP的pandas帖子所示,可以通过以下任一方式完成for循环或lapply/sapply,但是这样效率很低R.

df <- transform(df, c= ifelse(a==b, a+b, b-a))
df
#  a  b  c
#1 1  1  2
#2 2 20 18
#3 3  3  6
#4 4  4  8
#5 5 50 45

这可以写成

df$c <- with(df, ifelse(a==b, a+b, b-a))

在原始数据集中创建“c”列


由于OP希望有类似的选择R using if/else

df$c <- apply(df, 1, FUN = function(x) if(x[1]==x[2]) x[1]+x[2] else x[2]-x[1])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dataframe 根据其他列创建新列 的相关文章

  • 将鼠标悬停在 R 中的传单时弹出?

    我的传单地图看起来像这样 library sp library leaflet circleFun lt function center c 0 0 diameter 1 npoints 100 r diameter 2 tt lt seq
  • 因子不因式分解绘图的 x 轴标签

    我有一个从 Excel 导入的数据框 其中一列的格式为 dates Oct 17 Nov 17 Dec 17 Jan 18 Feb 18 Mar 18 Apr 18 May 18 Jun 18 Jul 18 Aug 18 所有其他列都只是数
  • Pyspark 将多个列合并为一个 json 列

    我不久前问过 python 的问题 但现在我需要在 PySpark 中做同样的事情 我有一个像这样的数据框 df cust id address store id email sales channel category 1234567 1
  • 根据其他列设置列的值

    我有一个数据框 如下所示 ID Score New ID New Score 123 5 456 456 1 789 789 0 123 我想为 New ID 列提供相同的分数 只是顺序不同 期望的结果 ID Score New ID Ne
  • 带插入符的主成分分析

    我正在使用 Caret 的 PCI 预处理 multinomFit lt train LoanStatus train method multinom std TRUE family binomial metric ROC thresh 0
  • 获取因子变量中水平和标签之间的原始关联

    我正在寻找一个函数来获取因子变量的原始映射表 我导入一个 Rdata 文件 我有一个名为 FactVar 的因子变量 我知道 FactVar 的映射表如下 010025 gt city1 015146 gt city2 048017 gt
  • 在 R 中的轴标签中绘制表情符号/自定义图像

    我正在尝试在 R 中绘制表情符号和自定义图像作为 X 轴的标签 我读过类似的帖子并且问题 https stackoverflow com questions 47730589 plot emojis emoticons in r with
  • 从 R 运行 powershell 命令:表达式或语句中出现意外标记

    我尝试了以下命令 在 powershell 窗口中有效 system powershell command Get ChildItem Filter html Where Object LastWriteTime ge 11 12 2021
  • 在单词后获取文本——R Webscraping

    几周前 这里有人帮助我极大地获得了名人数据库中所有链接的列表 我能够运行此代码并获得以下输出 library purrr library rvest url base lt https www nndb com lists 494 0000
  • 有没有办法为数据表绘制UMAP或t-SNE图?

    我有一个巨大的文件 下面是一小部分数据 如下所示 我想绘制一个 PCA 我可以使用 PCA 函数绘制 PCA 但它看起来有点乱 因为我有 200 列 所以我想也许 t SNE 或 UMAP 效果更好 但我无法使用它们进行绘图 我想在图中显示
  • 如何在 R 中按字符变量的字母顺序对数据框进行排序?

    我想按 R 中字符变量的字母顺序对数据框进行排序 我尝试使用order 函数 但它将我的数据框转换为列表 有人知道吗 好吧 我这里没有问题 df lt data frame v 1 5 x sample LETTERS 1 5 5 df v
  • R Notebook 预览中的奇怪字符

    当我预览 R Notebook 时 HTML 输出包含奇怪的字符 该块代码和输出 在 HTML 中呈现为 我应该如何解决这个问题 会话信息 R版本3 6 0 2019 04 26 平台 x86 64 w64 mingw32 x64 64位
  • 在数据帧中的几行上提取具有匹配模式的 id

    这是我正在处理的数据框的示例 id string 1 no 1 yes 1 yes 2 no 2 yes 3 yes 3 yes 3 no 我想提取id为此最后两行包含字符串 yes 对于列string 所以结果是 id string 1
  • 使用 R 和 rvest 进行网页抓取

    我正在尝试rvest学习使用 R 进行网页抓取 我正在尝试为页面的其他几个部分复制乐高示例并使用selector gadget to id 我从中提取了示例R Studio 教程 http blog rstudio org 2014 11
  • 控制绘图中 x 轴上出现哪些刻度线/标签?

    我想控制 X 轴上显示的刻度线 以下代码将刻度线放置在 5 的序列中 位于 5 10 15 30 library plotly df lt data frame x 1 30 y sample 100 300 size 30 replace
  • 如何使用增量值向 Pyspark 中的 DataFrame 添加列?

    我有一个名为 df 的 DataFrame 如下所示 Atr1 Atr2 Atr3 A A A B A A C A A 我想向其中添加一个具有增量值的新列并获取以下更新的 DataFrame Atr1 Atr2 Atr3
  • 如何在data.table中编写累积计算

    顺序累积计算 我需要进行时间序列计算 其中每行计算的值取决于上一行计算的结果 我希望能够利用data table 实际问题是水文模型 累积水平衡计算 在每个时间步长增加降雨量 并减去径流和蒸发作为当前水量的函数 该数据集包括不同的流域和场景
  • R 笔记本:opts_chunk 没有效果

    我正在开发我的第一台 R 笔记本 除了一个问题之外 它运行得很好 我想成为我内联输出的数字 r realbignumber 以逗号作为分隔符且最多 2 位小数 123 456 789 12 为了实现这一目标 我在文档的开头添加了一个块 其中
  • 如何在R中制作渐变颜色填充时间序列图

    How to 填充区域 sp 线下方和上方渐变色 这个例子是在 Inkscape 中绘制的 但我需要垂直渐变 不是水平的 间隔从zero to positive 来自white to red 间隔从zero to negative 来自wh
  • 读取 CSV 文件单列的更快方法

    我正在尝试阅读一个列CSV文件至R尽快 我希望将标准方法将列放入 RAM 所需的时间减少 10 倍 我的动机是什么 我有两个文件 一个叫Main csv这是 300000 行和 500 列 其中一个称为Second csv即 300000

随机推荐

  • 将 float 发送到不兼容类型 id 的参数

    我正在创建一个按钮 该按钮使用核心数据来保存点注释的名称 x 坐标和 y 坐标 我可以成功保留该名称 但当我尝试保存坐标时 我不断收到此错误 我已经记录了正确的数据 但我似乎无法保存它 当我尝试为 newPOI 设置值时 收到一条错误消息
  • AWS Cognito - 管理员无需发送电子邮件即可重置用户密码

    我需要重置一些用户的密码 但是not发送忘记密码的电子邮件 只需重置密码 以便他们下次登录时我可以显示一条消息 要求他们请求重置密码 深入研究我需要的最基本的东西 在不通知用户的情况下 我需要让他们进入一个RESET REQUIRED状态
  • C++ std::pair 的 C# 模拟是什么?

    我感兴趣的是 C 的类似物是什么std pair在 C 中 我发现System Web UI Pair类 但我更喜欢基于模板的东西 谢谢你 Tuples 自 NET4 0起可用 http msdn microsoft com en us l
  • 具有纬度/经度值的 Android GeoPoint

    我正在尝试获取 23 4456 by 45 44334 的 GeoPoint 我应该将什么值传递到 GeoPoint 的构造函数中 因为它只接受整数 GeoPoint 坐标以微度为单位 度 1e6 书面形式here http develop
  • 尝试让 div 在鼠标移动时“跟随”光标,但有延迟

    我想创建类似于旧鼠标轨迹的效果 其中 div 被延迟但跟随光标 通过使用设置间隔来触发光标坐标的动画 我已经相当接近了 body mousemove function e if enableHandler handleMouseMove e
  • 使用来自 WebSocket @ServerEndpoint 的 CDI @SessionScoped bean

    在 Web 应用程序中 用户使用 servlet HTTP 会话 一些数据存储在 CDI SessionScoped beans 中 稍后在某些页面中 WebSocket 通信是在用户浏览器和服务器之间执行的 对于 GlassFish 4
  • 如何从云函数内部运行查询?

    我想在调用 Firebase 应用程序上的云函数后对数据库执行查询 假设我在数据库上有某个触发器 请考虑中提供的示例Firebase 入门指南 https firebase google com docs functions write f
  • Ruby:在类方法中使用模块方法

    我们如何在类方法中使用模块方法而不扩展模块 module TestModule def module method module end end class TestClass include TestModule def self tes
  • gdb 输入文件中的十六进制值

    我正在尝试通过使用 gdb 内的 run 我可以成功地溢出程序 但在将十六进制值附加到字符串时遇到问题 我尝试过引用 将 mem addr 的值转换为 ascii 以及各种转义尝试 但没有成功 输入文件示例 AAAA x42 在上面的示例中
  • 监控 REST API 的最佳方式是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个基于 RESTful 模式的 API 我想知道监视它的最佳方法是什么 我可以以某种方式收集每个请求的统计信息以及我可以监控
  • jsfiddle问题[重复]

    这个问题在这里已经有答案了 我无法让这个极其简单的 jsfiddle 工作 它只是应该在单击按钮时提醒测试 我在这里缺少什么 http jsfiddle net u9nG6 2 http jsfiddle net u9nG6 2 您必须将加
  • CSS 滤色器叠加

    我正在尝试在图像上创建颜色叠加层 就像在这个应用程序中一样 图像上的绿色叠加层 https i stack imgur com FdgdA png https i stack imgur com FdgdA png 对我来说 他们看起来并不
  • Word 2007 VBA:ActiveDocument.CustomXMLParts

    In 本教程 https learn microsoft com en us archive blogs erikaehrli data driven document generation with word 2007 and the o
  • 从 ViewPager 中删除由 FragmentStatePagerAdapter 填充的所有片段

    我有一个 ViewPager 我使用 FragmentStatePagerAdapter 填充片段 代表 arrayListOfObjects 中的对象 一切正常 mMyFragmentPagerAdapter new fragmentAd
  • 更少的 css 编译器。无法使用变暗属性

    我正在开发一个项目 使用 LESS 作为我的 CSS 编译器 我已经有一个完全工作的循环 可以正确设置背景颜色 我的问题是这样的 使用我当前的代码 当我尝试使用 darken 属性时 编译结果是这样的 SyntaxError 错误评估函数d
  • 我应该使用哪个功能接口?

    我正在学习编写一些 lambda 表示形式功能接口 https docs oracle com en java javase 11 docs api java base java lang FunctionalInterface html
  • UIView 的 viewDidLoad 吗?

    是什么viewDidLoad for UIView 我有一个UIView与 xib 一起 我想在加载时隐藏它的子视图之一 我尝试使用这个 id initWithCoder NSCoder aDecoder theView hidden YE
  • 使用 Json.NET 反序列化空数组

    我有一个使用 Json NET v7 0 1 的 C 应用程序 作为 REST 调用的结果 我以以下形式返回一些 JSON messages phoneNumber 123 456 7890 smsText abcd1234 phoneNu
  • 如何使用 Jquery 更改辅助样式表?

    我的网站上有我的 base css 和 red css 我喜欢在按下某个按钮时将 red css 更改为 blue css 而不丢失 base css 如何执行此操作 我试过这个
  • Dataframe 根据其他列创建新列

    我有一个数据框 df lt data frame a c 1 2 3 4 5 b c 1 20 3 4 50 df a b 1 1 1 2 2 20 3 3 3 4 4 4 5 5 50 我想根据现有列创建一个新列 像这样的事情 if df