有关与另一列中重复条目相关联的列的问题

时间:2018-12-04 16:27:17

标签: r

我有2个数据集,我想以特定方式合并它们,

d1 <- read.table(text="
 a        c   
 1       100    
 2       1000   
 3       10000", header=TRUE)

d2 <- read.table(text="
 a      b          
 1      x       
 1      y       
 2      x  
 2      x    
 2      y        
 3      x", header=TRUE)

对于相同的“ a”值,只有两个不同的“ b”值:“ x”和“ y”,我想将“ c”的值除以“ x”的数量,并且“ y”的数量。也就是说,对于每个“ a”值,所有“ x”和“ y”都共享原始的c值。 输出如下:

# dataset 2
#     a      b      c    
#     1      x     100
#     1      y     100
#     2      x     500
#     2      x     500
#     2      y     1000
#     3      x     10000

我尝试过使用library(dplyr),但不确定哪种方法最好。 谢谢!

1 个答案:

答案 0 :(得分:0)

我想这就是你的追求

left_join(d1, d2) %>% group_by(a, b) %>% mutate(c=c/n()) %>% 
  select(a,b,c)

#       a b         c
#   <dbl> <fct> <dbl>
# 1     1 x       100
# 2     1 y       100
# 3     2 x       500
# 4     2 x       500
# 5     2 y      1000
# 6     3 x     10000

在这里我们加入,然后按每个a / b组合中的值分组并通过计数归一化