首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用mutate (ifelse())创建新变量,但由于NA而得到错误的答案

在R语言中,可以使用mutate()函数结合ifelse()函数来创建新变量。ifelse()函数可以根据条件判断返回不同的值,而mutate()函数可以在数据框中添加新的变量。

然而,当使用mutate(ifelse())创建新变量时,如果存在缺失值(NA),可能会得到错误的答案。这是因为ifelse()函数在处理缺失值时的行为与预期不同。

在R语言中,ifelse()函数的工作方式是对向量进行逐元素的条件判断。当条件为TRUE时,返回第二个参数的对应元素;当条件为FALSE时,返回第三个参数的对应元素。然而,当条件为NA时,ifelse()函数会返回NA,而不是根据条件返回第二个或第三个参数。

这可能导致在使用mutate(ifelse())创建新变量时,当条件为NA时,新变量的值也会变成NA,而不是根据条件返回正确的值。

为了解决这个问题,可以使用其他函数来处理缺失值,例如使用dplyr包中的case_when()函数。case_when()函数可以根据多个条件进行判断,并返回相应的值。它可以更好地处理缺失值,避免得到错误的答案。

以下是使用case_when()函数来创建新变量的示例代码:

代码语言:txt
复制
library(dplyr)

data <- data %>%
  mutate(new_variable = case_when(
    condition1 ~ value1,
    condition2 ~ value2,
    condition3 ~ value3,
    TRUE ~ value4
  ))

在上述代码中,condition1、condition2、condition3是条件,value1、value2、value3是对应条件为TRUE时的返回值,value4是默认情况下的返回值。

通过使用case_when()函数,可以更准确地处理缺失值,避免得到错误的答案。

请注意,以上回答中没有提及任何特定的云计算品牌商,如有需要,可以参考腾讯云的相关产品和文档来了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据处理第2节:将列转换为正确形状

转换列:基础部分 您可以使用mutate()函数创建列。 mutate选项几乎是无穷无尽:你可以对普通向量做任何事情,可以在mutate()函数内完成。...mutate任何内容都可以是列(通过赋予mutate列名),或者可以替换当前列(通过保持相同列名)。 最简单选项之一是基于其他列中计算。...这些函数本质上需要总结一个列(如上所示),如果你想在列之间使用sum()或mean(),你可能会遇到错误或荒谬答案。...想象一下,我们有一个包含两个大值数据库,我们假设它们是拼写错误或测量错误,我们想要排除它们。 下面的代码将使任何brainwt值超过4并返回NA。 在这种情况下,代码不会因4以下任何内容改变。...如果确实如此,那么将对这些变量进行mutate指令。 *mutate_at()要求你在vars()参数中指定要进行变异列。

8.1K30

使用 R 语言从 PDF 文档中提取表格

由于一个知识星球小伙伴急需学习如何从 PDF 文档中提取表格,所以先插这个课,「使用 R 语言处理 netCDF 数据」系列课程下次再发哈。...本课程介绍了如何使用 R 语言从 WHO(世界卫生组织)官网上下载冠疫情每日报告以及如何从这些报告中表格里面提取数据。...read_html('https://www.who.int/emergencies/diseases/novel-coronavirus-2019/situation-reports/') -> html # 创建...从 PDF 里面提取表格数据 我选择最新一个 PDF 做演示:20200523-covid-19-sitrep-124.pdf,下面使用 tabulizer 包进行数据提取,不过这个包依赖于 rJava...因为电脑系统关系,我不好演示,大家可以自己研究下,不难。我这里提供几个 tips,Java 安装之后可能还需要进行环境变量配置。

3.6K10

R语言数据分析有意思小例子:Prince歌词挖掘 — 1

原文内容可以分为三个部分 文本挖掘和探索数据分析 情感分析和 Topic Modeling with NLP() 机器学习预测分析 对于自己这样一个不太了解音乐的人来说首先提出问题就是 Prince...同时,Prince颇具实验精神,音乐风格横跨黑白乐界,几乎每次出新专辑都会融合音乐元素。上世纪80年代初,他所开创独特音乐风格,被称为“明尼阿波利斯之声”,影响了许多音乐人。...2016年4月21日清晨,流行音乐传奇人物、以多才多艺且多产闻名美国歌手“王子”(Prince)纳尔逊,在明尼苏达州派斯里园宅邸辞世,享年57岁。 以上内容来自百度百科。...37年 year和peak变量中有一些缺失值 缺失值可以先保留,根据后续具体分析内容在做处理 8、将年份划分为年代 library(dplyr) prince% mutate(...top100 上榜 没上榜 prince % mutate(chart_level = ifelse(prince$peak %in% 1:10,

74320

Google Earth Engine——使用 R、dplyr 和 ggplot 可视化科罗拉多州丹佛市每小时交通犯罪数据

丹佛市在其开放数据目录中公开保存过去五年犯罪数据。在本教程中,我们将使用 R 访问和可视化这些数据,这些数据本质上是具有犯罪类型、社区等特征时空参考点。 首先,我们将加载一些稍后会用到包。...,使用mutate()函数为这些变量创建列。...然后我们将创建一个变量day,它是数字dow列 (1, 2, ...)字符表示形式 (Sunday, Monday , ...)。...我们还将创建一个变量offense_type,它是该offense-type-id列更易于阅读版本。使用 ggplot,我们将为一周中每一天创建一个带有颜色密度图。...此工作流用于dplyr处理我们数据,然后将结果通过管道传输到ggplot2,以便我们在全局环境中仅创建一个对象p,即我们绘图。

9310

「R」绘制分组排序点图

在 R 包中,我有看到过 maftools 中可以绘制这样图,用来表示数据队列与 TCGA 数据比较,这也是应用于 TMB 分析。因为研究问题,我最近也想尝试使用改种图形来展示数据。...而且,该图可以拓展到任意可以适应场景下,所以我想基于 ggplot2 来创建一个通用绘图函数。 ?...下面是一个使用示例,通过构建一个示例数据进行绘图,展示如何传入分组变量和值变量、分组标签位置、排序以及点透明度等: set.seed(1234) data <- data.frame( yval...使用 ggplot2 实现这个图我遇到了不少难点,在实现过程中除了深入理解了 ggplot2,我也同时感受到了它灵活和限制。...ymax = max(.data$.dvar, na.rm = TRUE), .groups = "drop" ) %>% dplyr::mutate( xmin

1.6K30

17. R编程(三:运算符、控制语句、基本函数)

借助ifelse这一功能,我们便可以把复杂字符串向量通过函数转换为对应逻辑值向量(按照自定义筛选),再转换为自定义分类。...我们可以创建一个空列表,让每次循环输出值作为一个元素添加到列表中。使用 do.call 语句我们可以对列表进行 cbind ,将其拼接在一起。...TRUE } hello() ★function 中定义变量为局部变量,因此只能在函数内调用,在外部调用会显示无目标值。” ★变量被函数调用后发生变化只会发生在返回值上,变量本身数值不变。...即通过某个函数计算某变量,该变量本身数值并不会改变。” 使用函数 当一个代码需要重复使用三次及以上,就该考虑使用函数或者循环。...deg数据框中,成为一列 deg <- mutate(deg, x) load("deg.Rdata") deg <- cbind(deg,x) load("deg.Rdata") deg$x <-

80210

R 数据整理(六:根据分类新增列种种方法 1.0)

对于待分离对象(col),不必加上引号;但对于即将创建列(into),需要使用引号,由于是两列,这里使用向量创建。sep参数设定读取表格信息时以何符号作为分隔符。...对于即将合并列,需要使用引号;但对于想要合并多个列名,可以不用使用引号。sep 参数设定多列合并后不同数据分隔使用分割符。...data=test,key=var, value=num) head(x_gather) # 还原 # 错误答案,由于建立gather 缺乏有效索引,因此会报错。...# 缺乏一个唯一确定该数据变量。 # x_spread <- spread(test, key=var, value=num) # 通过mutate 会表格添加一列索引列。...# 2.将第三列分成两列(以小数点为分隔符)然后合并 head(iris) # 错误答案由于sep 会识别正则(.

2K20

R tips:使用TCGAbiolinks包下载TCGA数据

:如果需要进行Gene间比较,那么需要对基因长度做Normalization,否则的话,基因越长,获得基因Counts也就越多; 文库组成:比如样本A是敲除样本,样本B是过表达样本,那么这个时候我们就不能假定两个样本转录组总表达量是一致...(status = ifelse(vital_status == 'Dead', "1", "0")) %>% mutate( OS = case_when( status ==...(status = ifelse(vital_status == 'Dead', "1", "0")) %>% mutate( OS = case_when( status ==...log-rank和cox回归区别在于是cox是半参数检验,需要对数据有一些先验假设,另外cox回归并不不局限于拟合数据是分类变量,也可以是连续变量。...%>% mutate('{x}' := ifelse(.data[[x]] > median(.data[[x]]), "High", "Low")) # 生存信息

3.2K31

R语言亚组分析1行代码实现!

前几天演示了如何使用purrr进行回归模型亚组分析及森林图绘制: R语言亚组分析及森林图绘制 本来找了好久没找到可以实现这个功能R包,都打算自己写个包了,没想到这几天找到了!...完美实现COX回归和logistic回归亚组分析,除此之外,还支持svyglm、svycoxph结果,并且数据结果可直接用于绘制森林图,连NA和各种空行都给你准备好了!...使用survival包中colon数据集用于演示,这是一份关于结肠癌患者生存数据,共有1858行,16列,共分为3个组,1个观察组+2个治疗组,观察他们发生终点事件差异。...分类变量需要变为因子型,这样在进行回归时会自动进行哑变量设置。 为了演示,我们只选择Obs组和Lev+5FU组患者,所有的分类变量都变为factor,把年龄也变为分类变量并变成factor。...我们添加个空列用于显示可信区间,并把不想显示NA去掉即可,还需要把P值,可信区间这些列变为数值型。

1.1K20

「R」dplyr 列式计算

,但是通过拷贝和粘贴方式进行的话既枯燥就容易产生错误。...最后我们将简要介绍一下历史,说明为什么我们更喜欢 across() 不是后一种方法(即 _if(), _at(), _all() 变体函数)以及如何将你旧代码转换为语法实现。...这使 「dplyr」 更容易使用(因为需要记住函数更少),也使我们更容易实现动词(因为我们只需要实现一个函数,不是四个)。...令人失望是,我们没有早点发现 across(),而是经历了几个错误尝试(首先没有意识到这是一个常见问题,然后是使用_each()函数,最后是使用_if()/_at()/_all()函数)。...它们已经有选择语义,所以通常以与 across() 不同方式使用,我们需要使用 rename_with() 代替。

2.4K10
领券