【问题标题】:Create a new column in R based off of values for an existing column in my data frame根据我的数据框中现有列的值在 R 中创建一个新列
【发布时间】:2021-03-21 00:11:45
【问题描述】:

我有一个名为 wine 的数据框,其中主要包含作为 wine 属性的数字列。其中一列是镁的水平。我想在我的数据框中创建一个名为 high_Magnesium 的新因子列,其中如果 Magnesium 的值为 100 或更大,则新列中的值为“高”,如果小于 100,则新列中的值为“低”。我已经尝试了 for 循环/if else 语句,但我确信我没有正确地做到这一点,因为我没有得到我需要的结果。任何帮助表示赞赏。我的 R 学习体验已经 4 周了,我非常喜欢它。

for( i in 1:nrow(wine))(
if(wine$Magnesium[i] >=  "100")(
  wine$high_Magnesium[i] <- "High"
else(wine$Magnesium[i] < "100")(
  wine$high_Magnesium[i] <- "Low"

       
)

)

【问题讨论】:

  • wine$high_Magnesium &lt;- ifelse(wine$Magnesium &gt;= 100, "High", "Low").

标签: r dataframe new-operator calculated-columns


【解决方案1】:
library(tidyverse)
as_tibble(wine) %>% mutate(
  High = case_when(Magnesium >= 100 ~ 1, Magnesium < 100 ~ 0),
  Low = case_when(Magnesium < 100 ~ 1, Magnesium >= 100 ~ 0)
)

as_tibble(wine) %>% mutate(
  High = if_else(Magnesium >= 100, 1, 0)
  Low = if_else(Magnesium < 100, 1, 0)
)

【讨论】:

    猜你喜欢
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2021-06-05
    • 2021-02-08
    • 2021-04-19
    • 2020-10-03
    相关资源
    最近更新 更多