R代码:如何根据其他变量的多个条件生成变量

2024-04-16

我有一个 R 初学者用户:

这是我的数据集

factor1 <- c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,8,9, 9, 10, 10)
factor2 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,16,17, 18, 19, 20)
factor3 <- c("a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c", "c", "c", "d", "d", "d", "d", "d")
factor4 <- c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150,160,170, 180, 190, NA)
dataset <- data.frame(factor1, factor2, factor3, factor4) 

我这样创建了一个新变量:

dataset$newvar <-"NA"

如何执行以下操作:

如果factor1>=5且factor2

理想情况下,我想指定不同的条件,因此变量 newvar 中的一些观察结果将是值 1、2、3 和 4,具体取决于其他几个变量的值。

这在 STATA 中非常简单直观,我想知道是否有一种简单直观的方法可以在 R 中执行相同的操作。


根据多个值的多个条件生成一个新变量.

这个问题没有明确解决:

理想情况下,我想指定不同的条件,因此变量 newvar 中的一些观察结果将是值 1、2、3 和 4,具体取决于其他几个变量的值。

一个简单的解决方案是使用case_when。类似于Stata的recode它允许您同时指定多个值。

它的工作原理如下:

newvar = case_when(
condition1 ~ target value,
condition2 ~ target value)

e.g. var1 == 1 ~ 0

重要的是你需要一个,每行之后。

library(dplyr)

dataset <- mutate(dataset,
        newvar = case_when(
               factor1 >= 5 & factor2<19 & (factor3 =="b" | factor3 =="c")  ~ 1, 
               factor1 == 1 ~ 2,
               factor1 == 2 ~ 3,
               TRUE ~ NA_real_ # This is for all other values 
             ))                # not covered by the above.

dataset


#       factor1 factor2 factor3 factor4 newvar
# 1        1       1       a      10      2
# 2        1       2       a      20      2
# 3        2       3       a      30      3
# 4        2       4       a      40      3
# 5        3       5       a      50     NA
# 6        3       6       b      60     NA
# 7        4       7       b      70     NA
# 8        4       8       b      80     NA
# 9        5       9       b      90      1
# 10       5      10       b     100      1
# 11       6      11       c     110      1
# 12       6      12       c     120      1
# 13       7      13       c     130      1
# 14       7      14       c     140      1
# 15       8      15       c     150      1
# 16       8      16       d     160     NA
# 17       9      17       d     170     NA
# 18       9      18       d     180     NA
# 19      10      19       d     190     NA
# 20      10      20       d      NA     NA

注意,不能使用NA(缺少)作为目标值,而是使用以下之一

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

R代码:如何根据其他变量的多个条件生成变量 的相关文章

  • R texreg:如何选择要显示的 gof 统计信息?

    我正在使用 texreg 通过 plm 生成面板回归的输出表 我想抑制所有 gof 统计数据的输出 这不是显示 R2 adj R2 和 N 我只想显示 adj R2 有谁知道一个简单的方法来做到这一点 好吧 这实际上很简单 只需在调用中包含
  • 如何从R中的日期中提取月份

    我正在使用lubridate封装并应用month从日期中提取月份的函数 我在日期字段上运行了 str 命令 得到了 Factor w 9498 levels 01 01 1979 01 01 1980 5305 1 1 1 1 1 1 1
  • 如何将带有观察计数的标签添加到 stat_summary ggplot?

    我有一个数据集 例如 outcome lt c rnorm 500 45 10 rnorm 250 40 12 rnorm 150 38 7 rnorm 1000 35 10 rnorm 100 30 7 group lt c rep A
  • 访问 R 工作区中的数据[重复]

    这个问题在这里已经有答案了 我是自学 R 的 可能有一些非常基本的东西我可能不熟悉 如果是这样我道歉 我正在尝试访问外部来源提供给我的数据 它作为一个工作空间出现 我的流程如下 gt ls 1 2003OHT HR gt attach 20
  • 如何使用 sprintf 函数在字符中添加前导“0”而不是空格?

    我正在尝试使用sprintf函数为字符添加前导 0 并使所有字符长度相同 然而我得到的是领先空间 My code a lt c 12 123 1234 sprintf 04s a 1 12 123 1234 我试图得到什么 1 0012 0
  • R闪亮主面板显示样式和字体

    我正在学习闪亮的应用程序 并且有一些关于调整布局的基本问题 特别是样式和字体 希望得到指点或明确的答案 谢谢 考虑一个基本的输入输出应用程序 用户在 sidebarPanel 中输入数据 然后在 mainPanel 中反应性地输出结果 如何
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt
  • 如何使用autoconf重新生成配置文件?

    我使用 autoconf 重新生成配置文件 它有效 但是当我执行生成的配置文件时 configure 有一些错误消息 例如 configure line 3713 syntax error near unexpected token bla
  • 空间数据xyz到矩阵

    我有一个大数据框 100 000 行 其中包含 LON LAT VALUE 我想将其转换为矩阵 EPSG 中的坐标 3035 我使用以下命令尝试了 reshape2 包 acast df lon lat value var value 效果
  • zsh:未找到命令:使用 Big Sur Mac 的终端上的 R

    我从官方 cran 网站安装了 R 我可以从 Rstudio 运行 R 但是当我尝试从终端使用 R 时 我得到以下结果 base ege Eges MBP R zsh command not found R base ege Eges MB
  • 函数“[<-”将_替换_一个元素,但不会追加_元素_

    我在使用时注意到以下几点 lt 我成功于替换元素但不位于追加向量的一个元素 例子 VarX lt integer VarX 1 lt 11 lt VarX 2 22 VarX 1 11 Expected the value of VarX
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p
  • R 多元一步预测和准确性

    我想使用 R 来比较两个预测模型的 RMSE 均方根误差 第一个模型使用 1966 年至 2000 年的估计值来预测 2001 年 然后使用 1966 年至 2001 年的估计值来预测 2002 年 依此类推直至 2015 年 第二个模型使
  • 更改 pander 中的默认对齐方式 (pandoc.table)

    我目前正在切换到pander对于我的大部分时间knitr markdown格式化 因为它提供了如此出色的pandoc支持 我不太满意的一件事是默认的居中对齐 营销人员可能会喜欢它 但对于技术报告来说这是一个可怕的事情 使用的最佳选择Hmis
  • R 中的龙卷风图

    我正在尝试在 R 中绘制龙卷风图 又名敏感性图 目标是可视化某些变量增加 10 和减少 10 的效果 到目前为止我已经得到这个结果 这是我正在使用的代码 Tornado plot data lt matrix c 0 02 0 02 0 0
  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 如何定义“f_n-chi-square”函数并使用“uniroot”求置信区间?

    I want to get a 95 confidence interval for the following question 我已经写了函数f n在我的 R 代码中 我首先使用 Normal 随机采样 100 个样本 然后定义函数h
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d

随机推荐

  • bin目录和PATH

    我是编程初学者 有人可以解释一下 用简单的话 程序的 bin 目录中有什么吗 这是什么PATHwindows的环境变量 它是如何工作的 请不要以为我不会使用Google 我只是想更清楚地理解它 通常将程序的所有二进制文件放在 bin 目录中
  • CakePHP 总是让我退出

    最近我制作了三个蛋糕应用程序 这三个应用程序都有这个问题 配置大部分是库存的 我使用它作为会话选项 Configure write Session array defaults gt php cookie gt test 经过大量谷歌搜索后
  • 通过在 datagridviewcolum 中指定 DefaultCellStyle.Format 值来显示百分比

    With datagridview Columns PricePerUnit ValueType Type GetType System Decimal DefaultCellStyle Format C End With 数据表绑定到 d
  • 从数据库中检索图像

    我正在开发一个显示员工列表的项目 此处将显示该员工的信息和照片 我的项目现在可以在列表框中显示员工列表 当我双击员工时 他 她的个人资料将显示在文本框中 我的问题是我无法让他们的照片显示在picturebox 我已经将他们的照片以及他们的
  • 绘制 dr4pl 剂量反应曲线,以及如何将它们与 ggplot2 集成?

    我正在尝试建立一种高通量方法来绘制大型筛选实验的剂量反应曲线 Prism 显然有最简单的方法可以很好地绘制剂量反应曲线 但我无法复制和粘贴这么多数据 自从 CRAN 被移除后drc 包dr4pl似乎是可行的方法 但目前可用的指导还很少 ma
  • 在python中解压嵌套的zip文件

    我正在寻找一种在 python 中解压缩嵌套 zip 文件的方法 例如 考虑以下结构 为方便起见 使用假设名称 Folder ZipfileA zip 压缩文件A1 zip 压缩文件A2 zip ZipfileB zip 压缩文件B1 zi
  • 在 C 中将整数转换为二进制

    我正在尝试将整数 10 转换为二进制数 1010 此代码尝试执行此操作 但我在 strcat 上遇到段错误 int int to bin int k char bin bin char malloc sizeof char while k
  • 为多面图中的单个面板添加几何图层

    从以下链接中获取提示使用 ggplot2 对齐两个图 http rwiki sciviews org doku php id tips graphics ggplot2 aligntwoplots 我能够根据共同的 x 轴绘制 2 个 y
  • 流明:启用 CORS

    我使用 Lumen 构建了一个 API 并希望使用 JavaScript 和 XMLHttpRequest 对象访问它 但每次我的 PUT GET POST 和 DELETE 请求都会转化为选项 请求 我看了很多网站都有CORS的信息 我构
  • 点击按钮后 Python Tkinter 销毁标签

    我有一个在单击按钮后出现的标签 但是每次单击按钮后 前一个标签仍保留在其位置并创建一个新标签 我希望将新标签代替旧标签 代码如下 browser webdriver PhantomJS browser get http www ipvoid
  • iPhone硬计算和缓存

    我有问题 我有数据库500k记录 每个记录存储纬度 经度 动物种类 观察日期 我必须在 Mapkit 视图上方绘制网格 15x10 以显示该网格单元中物质的浓度 每个单元格都是 32x32 的盒子 如果我在运行时计算它是非常slow 有人知
  • Cocoa:如何将布尔属性绑定到 NSCellStateValue?

    我想绑定布尔值enabled的财产NSTextField到一个状态NSButton 我已经尝试添加自定义NSValueTransformer从而改变了状态NSButton into NSNumber 但是 在这种情况下 由于某种原因 文本字
  • 有没有办法通过命令行将 JVM 参数传递给 Maven? [复制]

    这个问题在这里已经有答案了 可能的重复 Maven Jetty 插件 如何控制 VM 参数 https stackoverflow com questions 2007192 maven jetty plugin how to contro
  • 如何在 Java 中对 HTTP 请求中的西里尔字母进行编码?

    美好时光 我的 Adroid 应用程序向 Google 的 API 服务之一执行 HTTP 请求 当然 当请求的参数是英文时 它可以工作 但是当我用西里尔文测试我的函数时 我收到 400 错误 似乎问题是将 Win 1251 字符串编码为
  • 将数据从 Azure HUB-IOT 保存到 Azure SQL 数据库

    我最近创建了一个 Azure Hub IOT 其中我从虚拟设备发送一些数据 我知道数据已到达 因为我可以从终端看到它们 但现在我想获取这些数据并将它们保存到 Azure SQL DataBase 中 我怎样才能做到这一点 如果有人可以向我解
  • 如何 git Blame 目录

    我想知道如何使用 gitblame 来知道谁创建了单个目录 当我尝试时 git blame DIRECTORY NAME I get fatal no such path DIRECTORY NAME in HEAD 顺便说一句 该目录是空
  • 向 Windows 窗体消息循环发送或发布消息

    我有一个线程从命名管道读取消息 它是阻塞读取 这就是它在自己的线程中的原因 当该线程读取消息时 我希望它通知主线程中运行的 Windows 窗体消息循环消息已准备就绪 我怎样才能做到这一点 在win32中我会做一个PostMessage 但
  • 无法加密特殊字符:不是块长度的倍数

    我有一个加密 解密算法 我试图加密一些特殊字符从android发送到服务器 但它抛出一个异常 java lang Exception 加密 错误 0607F08A 数字信封例程 EVP EncryptFinal ex 数据不是块长度的倍数
  • 如何从 UnsafeMutableRawPointer 中获取字节?

    如何访问由 C API Core Audio 等 传递给 Swift 函数的 UnsafeMutableRawPointer Swift 3 中的新功能 指向的内存之外的字节 或 Int16 浮点数等 load
  • R代码:如何根据其他变量的多个条件生成变量

    我有一个 R 初学者用户 这是我的数据集 factor1 lt c 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 factor2 lt c 1 2 3 4 5 6 7 8 9 10 11 12 13 1