繁体   English   中英

基于R中的多个条件填充列

[英]Filling a column based on multiple conditions in R

为此使用伪数据,我有两个数据帧:

一个是位置列表及其在按性别(df1)分隔的度量上的排名

  Locations Male Female
1         A    1      2
2         B    2      1
3         C    1      2

另一个是人名单

   Name Gender Location
1   Joe   Male        A
2  Alex Female        B
3 Chris Female        A
4   Sam   Male        C

我想在第二个数据框(df2 $ Value)中添加一列,该列根据其性别和位置为第一个数据框中的每个人提供相应的编号。 (因此,在这种情况下,结果将是1,1,2,1)。

我试过合并和一些条件语句,但无济于事。

将df1转换为具有匹配名称的堆叠格式:

df1 <- df1 %>% gather(Gender, Value, Male:Female)
names(df1)[names(df1)=="Locations"] <- "Location"

使用left_join通过GenderLocation匹配Value

df2 %>% left_join(df1)

#    Name Gender Location Value
# 1   Joe   Male        A     1
# 2  Alex Female        B     1
# 3 Chris Female        A     2
# 4   Sam   Male        C     1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM