R 如果一个组中的两个值中的任何一个出现在另一列中,是否有方法在所有行中指定值1?
例如,我有一个NBA球员的数据集。我想看看谁曾效力于网队或尼克斯队R 如果一个组中的两个值中的任何一个出现在另一列中,是否有方法在所有行中指定值1?,r,if-statement,group-by,conditional-statements,R,If Statement,Group By,Conditional Statements,例如,我有一个NBA球员的数据集。我想看看谁曾效力于网队或尼克斯队 Name| Teams| Baron Davis Hornets Baron Davis Warriors Baron Davis Knicks Jason Kidd Suns Jason Kidd Nets Jason Kidd Mavs Jason Kidd
Name| Teams|
Baron Davis Hornets
Baron Davis Warriors
Baron Davis Knicks
Jason Kidd Suns
Jason Kidd Nets
Jason Kidd Mavs
Jason Kidd Knicks
Kevin Durant Thunder
Kevin Durant Nets
Kevin Durant Warriors
Michael Jordan Bulls
Reggie Miller Pacers
Allan Houston Knicks
Allan Houston Pistons
根据这些信息,我想为每个在尼克斯或篮网打球并有结果的球员分配一个值1
Name| Teams| value
Baron Davis Hornets 1
Baron Davis Warriors 1
Baron Davis Knicks 1
Jason Kidd Suns 1
Jason Kidd Nets 1
Jason Kidd Mavs 1
Jason Kidd Knicks 1
Kevin Durant Thunder 1
Kevin Durant Nets 1
Kevin Durant Warriors 1
Michael Jordan Bulls 0
Reggie Miller Pacers 0
Allan Houston Knicks 1
Allan Houston Pistons 1
他们所需要做的就是为两支球队中的一支打1分。如果没有,则指定0。我们可以按“名称”分组,通过检查向量中的任何元素在%列中的
%来创建“值”,以生成逻辑向量,并强制它以+
或作为.integer的形式转换为二进制
library(dplyr)
df1 %>%
group_by(Name) %>%
mutate(value = +(any(c('Knicks', 'Nets') %in% Teams))) %>%
ungroup
-输出
# A tibble: 14 x 3
Name Teams value
<chr> <chr> <int>
1 Baron Davis Hornets 1
2 Baron Davis Warriors 1
3 Baron Davis Knicks 1
4 Jason Kidd Suns 1
5 Jason Kidd Nets 1
6 Jason Kidd Mavs 1
7 Jason Kidd Knicks 1
8 Kevin Durant Thunder 1
9 Kevin Durant Nets 1
10 Kevin Durant Warriors 1
11 Michael Jordan Bulls 0
12 Reggie Miller Pacers 0
13 Allan Houston Knicks 1
14 Allan Houston Pistons 1
#一个tible:14 x 3
命名团队价值观
1戴维斯男爵黄蜂队1
2戴维斯勇士男爵1
3戴维斯男爵尼克斯队1
4基德太阳队1
5基德网队1
6基德小牛队1
7基德尼克斯队1
8凯文·杜兰特·雷霆1
9凯文·杜兰特网队1
10凯文·杜兰特勇士队1
11迈克尔乔丹公牛队0
12雷吉·米勒步行者0
13艾伦休斯顿尼克斯队1
14艾伦休斯顿活塞队1
数据
df1工作得非常完美。非常感谢。
df1 <- structure(list(Name = c("Baron Davis", "Baron Davis", "Baron Davis",
"Jason Kidd", "Jason Kidd", "Jason Kidd", "Jason Kidd", "Kevin Durant",
"Kevin Durant", "Kevin Durant", "Michael Jordan", "Reggie Miller",
"Allan Houston", "Allan Houston"), Teams = c("Hornets", "Warriors",
"Knicks", "Suns", "Nets", "Mavs", "Knicks", "Thunder", "Nets",
"Warriors", "Bulls", "Pacers", "Knicks", "Pistons")),
class = "data.frame", row.names = c(NA,
-14L))