基于员工层次结构规则的条件 Ifelse
Conditional Ifelse based on Rule for Employee Hierarchy
这似乎是一个简单的问题,但我无法解决这个问题。
我有一个数据,其中一个人从他的同事那里收到反馈,他可以从他的团队成员或他的同事那里收到反馈。如果经理收到团队成员的反馈,另一列必须有 upward 作为类别。如果经理已将其交给他的团队成员,则该列必须具有 downward 否则如果它是与不同经理的点对点,则它必须具有 Lateral
我的数据是这样的:
Employee ReceivedFrom EmpDirector
Jake Frazer Frazer
Smith Frazer Frazer
Frazer Jake Alister
Drapper Frazer Alister
您可以看到 Jake 收到了 Frazer 的邮件,而 Jake 的 主管也收到了弗雷泽,因此向下。还要注意下面最后一行 Drapper 和 Frazer 都有相同的导演,但反馈本身不是来自导演,因此是 横向
想要结果
Employee ReceivedFrom EmpDirector FeedbackType
Jake Frazer Frazer Downward
Smith Frazer Frazer Downward
Frazer Jake Alister Upward
Drapper Frazer Alister Lateral
case_when()
in dplyr
可以操作多个条件语句。在使用之前,需要创建一个辅助变量,即tmp
,代表ReceivedFrom
.
的人的董事
library(dplyr)
df %>%
mutate(tmp = EmpDirector[match(ReceivedFrom, Employee)],
FeedbackType = case_when(
ReceivedFrom == EmpDirector ~ "Downward",
Employee == tmp ~ "Upward",
TRUE ~ "Lateral"),
tmp = NULL) ## you can remove it if you want
# Employee ReceivedFrom EmpDirector FeedbackType
# 1 Jake Frazer Frazer Downward
# 2 Smith Frazer Frazer Downward
# 3 Frazer Jake Alister Upward
# 4 Drapper Frazer Alister Lateral
这似乎是一个简单的问题,但我无法解决这个问题。
我有一个数据,其中一个人从他的同事那里收到反馈,他可以从他的团队成员或他的同事那里收到反馈。如果经理收到团队成员的反馈,另一列必须有 upward 作为类别。如果经理已将其交给他的团队成员,则该列必须具有 downward 否则如果它是与不同经理的点对点,则它必须具有 Lateral
我的数据是这样的:
Employee ReceivedFrom EmpDirector
Jake Frazer Frazer
Smith Frazer Frazer
Frazer Jake Alister
Drapper Frazer Alister
您可以看到 Jake 收到了 Frazer 的邮件,而 Jake 的 主管也收到了弗雷泽,因此向下。还要注意下面最后一行 Drapper 和 Frazer 都有相同的导演,但反馈本身不是来自导演,因此是 横向
想要结果
Employee ReceivedFrom EmpDirector FeedbackType
Jake Frazer Frazer Downward
Smith Frazer Frazer Downward
Frazer Jake Alister Upward
Drapper Frazer Alister Lateral
case_when()
in dplyr
可以操作多个条件语句。在使用之前,需要创建一个辅助变量,即tmp
,代表ReceivedFrom
.
library(dplyr)
df %>%
mutate(tmp = EmpDirector[match(ReceivedFrom, Employee)],
FeedbackType = case_when(
ReceivedFrom == EmpDirector ~ "Downward",
Employee == tmp ~ "Upward",
TRUE ~ "Lateral"),
tmp = NULL) ## you can remove it if you want
# Employee ReceivedFrom EmpDirector FeedbackType
# 1 Jake Frazer Frazer Downward
# 2 Smith Frazer Frazer Downward
# 3 Frazer Jake Alister Upward
# 4 Drapper Frazer Alister Lateral