首页 > 解决方案 > R - 使用 if 或 else 循环制作附加列的数据框

问题描述

我有以下简单的数据框:

df <- data.frame("StudyID" = paste("Study", seq(1:100), sep = "_"),
             "Score" = sample(c(1:30),100, replace = TRUE))

我想在数据框中创建一个附加列:df。此列需要包含值:

这个新列需要使用 IF 或 ELSE 循环或两者兼而有之。

提前致谢!!非常感谢您的帮助!

- 提供了我使用的所有代码。

标签: rdataframe

解决方案


您可以使用嵌套ifelse

transform(df, newcol = ifelse(Score > 20, "great", 
                        ifelse(Score < 10, "bad", "neutral")))

case_when来自dplyr

library(dplyr)

df %>%
  mutate(newcol = case_when(Score > 20 ~ "great",
                            Score < 10 ~ "bad", 
                            TRUE ~ "neutral"))

推荐阅读