使用来自另一个 DF 的值创建 Dataframes 列并在 R 中匹配更新

Create Dataframes columns with values from another DF and update matched in R

我的数据是这样的。 df1:

df2:

预期输出:

任何人都可以帮助 R 中的函数(如果可用的话)。

是否回答:

> df1 %>% inner_join(df2 %>% count(name, language) %>%  
+                      pivot_wider(names_from = language, values_from = n, values_fill = 0) %>% 
+                                                               relocate(c(c, java, r, q, k, t, s)))
Joining, by = "name"
# A tibble: 3 x 9
  name   var1     c  java     r     q     k     t     s
  <chr> <dbl> <int> <int> <int> <int> <int> <int> <int>
1 a         7     1     0     0     1     0     0     1
2 b         8     0     1     0     0     1     0     0
3 c         8     1     0     1     0     0     1     0
> 

库(reshape2)

  name var1
1    a    7
2    b    8
3    c    8

df2
  name language
1    a        c
2    a        q
3    a        s
4    b     java
5    b        k
6    c        r
7    c        t
8    c        c

df3 <- df1 %>% inner_join(df2 %>% count(name, language)
df3 <- dcast(df3, name + var1 ~ language, value.var = "n", fun.aggregate = sum)

df3
  name var1 c java k q r s t
1    a    7 1    0 0 1 0 1 0
2    b    8 0    1 1 0 0 0 0
3    c    8 1    0 0 0 1 0 1