首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有一种方法可以根据条件向R添加新列

有没有一种方法可以根据条件向R添加新列
EN

Stack Overflow用户
提问于 2019-02-10 08:30:07
回答 2查看 63关注 0票数 0

当前在Azure中使用R。我正试图在我的数据帧中创建一个新列,它的值依赖于现有的列(“Sum of Pillar”。

->WithSumIDAPillars <- maml.mapInputPort(1)

->WithSumIDAPillars"newcolumn“<- NA

->WithSumIDAPillars$newcolumn <- if (WithSumIDAPillars$Sum of Pillar <5 ="Low";WithSumIDAPillars$Sum of Pillar <=6<=10 ="Medium";WithSumIDAPillars$Sum of Pillar <=11<=16 ="High“

我需要创建一个新列来设置以下要求:如果"Sum of PIllar“值介于0-5=低,6-11=中,11-16=高。

EN

回答 2

Stack Overflow用户

发布于 2019-02-10 08:51:39

你用过dplyr包吗?像这样的东西可以工作吗?

代码语言:javascript
运行
复制
library("dplyr")

WithSumIDAPillars$newcolumn <- 
  case_when(
    WithSumIDAPillars$`Sum of Pillar` <= 6 ~ "Low",
    WithSumIDAPillars$`Sum of Pillar` <= 11 ~ "Medium",
    WithSumIDAPillars$`Sum of Pillar` <= 16 ~ "High",
    TRUE ~ NA_character_
  )

case_when()函数按顺序遍历每个case,直到~左侧的一个表达式的计算结果为TRUE,因此最后一条语句被用作默认值。

根据应用程序的不同,使用下划线将列命名为sum_of_pillar可能会更容易。这样可以更容易地使用管道(%>%)和mutate()函数来更简洁地编写代码:

代码语言:javascript
运行
复制
WithSumIDAPillars <- 
  WithSumIDAPillars %>%
  mutate(
    newcolumn = case_when(
      sum_of_pillar <=  5 ~ "Low",
      sum_of_pillar <= 11 ~ "Medium",
      sum_of_pillar <= 16 ~ "High",
      TRUE ~ NA_character_
    )
  )

要了解有关dplyr的更多信息,您可以访问网站:https://dplyr.tidyverse.org/或(免费)R for Data Science图书:https://r4ds.had.co.nz/

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2019-02-10 20:03:47

case_when的另一种方法是使用嵌套的if_else语句,这种方法可能不太优雅。也许这样做的一个好处是,您不必像使用case_when那样过多地关注顺序或语句。

代码语言:javascript
运行
复制
library(tidyverse)

WithSumIDAPillars %>%
    mutate(new_col = if_else(`Sum of the Pillar` >= 0 & <= 5, "Low",
                             if_else(`Sum of the Pillar` >= 6 & <= 11, "Medium",
                                     if_else(`Sum of the Pillar` >= 12 & <= 18, "High",
                                             NA))))

注意-在你的上、中和下高阈值之间有一个重叠,所以我把高的下限提高到了12。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54612241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档