【发布时间】:2017-02-23 18:02:54
【问题描述】:
我有以下数据:
DF <- data.frame(Members = c("Eva", "Charlie1", "Fred", "Charlie2", "Adam", "Eva", "Charlie2", "David", "Adam", "David", "Charlie1"))
如果成员名称符合特定条件,我想创建一个返回特定值的函数:
- 如果成员名称等于 Eva 或 Adam,则返回“Group1”
- 如果成员名称包含字符串“Charlie”,则返回“Group2”
- 如果成员名称不是前两条规则之一,则返回“Group3”
我想将“Group1”、“Group2”、“Group3”返回到 DF 中名为“Teams”的新列中
我已经用下面的代码完成了,但是我对如何用函数完成它很感兴趣
DF$Team <- with(DF, ifelse((DF$Members=="Eva"|DF$Members=="Adam"),"Group1",
ifelse((grepl("Charlie", DF$Members)),"Group2","Group3")))
【问题讨论】:
-
您正在使用函数,所以我不太清楚问题是什么。你可以做
DF$Team <- factor(DF$Members, labels = ...),但大部分工作是根据你的特殊规则制作这些标签......ifelse似乎很好。