r - R - 使用 if 或 else 循环制作附加列的数据框
问题描述
我有以下简单的数据框:
df <- data.frame("StudyID" = paste("Study", seq(1:100), sep = "_"),
"Score" = sample(c(1:30),100, replace = TRUE))
我想在数据框中创建一个附加列:df。此列需要包含值:
- 如果列 Score 中的值大于 20,则为“great”。
- 如果值小于 10,则为“坏”。
- 否则为“中性”(因此在 10 到 20 之间)。
这个新列需要使用 IF 或 ELSE 循环或两者兼而有之。
提前致谢!!非常感谢您的帮助!
- 提供了我使用的所有代码。
解决方案
您可以使用嵌套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"))
推荐阅读
- mysql - 如何按 DC2Type:json_array 子字段排序
- r - For 循环列表不存储值
- caddy - Caddy - 如何仅对一个域禁用 https
- symfony - 来自进程的控制器操作
- continuous-integration - Gitlab-ci子管道同名
- elasticsearch - ES多次必须查询返回错误结果
- node.js - 如何使用 cookie-session 和 passport.js 在注册时启动会话?
- python - 尝试将唯一的 ASCII 文件导入熊猫数据帧时出现解析错误
- php - 10K 次相同 URL 的 PHP CURL 请求
- c# - 文件上传过快