我要对数据框,比如说A和B。
表A的构造如下:
ID a b c d
1 NA NA NA NA
2 NA NA NA NA
3 NA NA NA NA
4 NA NA NA NA
表B的结构如下:
A B
a 1
a 2
a 3
b 2
b 6
b 8
b 9
c 1
c 6
c 11
d 5
d 4
如果表B中的1(列B)与a(列A)相关联,我基本上想对ID更改NA 1(表A)进行操作。
我不确定这是最好的方法,也许使用矩阵会更简单。
答案 0 :(得分:0)
我考虑要将B
转换为具有1
的密集表(如果在B
中存在该组合)。您可以通过识别B
是相同的数据,但将value
的单元格遗漏来做到这一点。我们需要将其添加进来,然后spread
从长到宽转换:
library(tidyverse)
tbl_b <- tibble(
A = c("a", "a", "a", "b", "b", "b", "b", "c", "c", "c", "d", "d"),
B = c(1, 2, 3, 2, 6, 8, 9, 1, 6, 11, 5, 4)
)
tbl_b %>%
mutate(value = 1) %>%
spread(A, value)
#> # A tibble: 9 x 5
#> B a b c d
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 1 NA 1 NA
#> 2 2 1 1 NA NA
#> 3 3 1 NA NA NA
#> 4 4 NA NA NA 1
#> 5 5 NA NA NA 1
#> 6 6 NA 1 1 NA
#> 7 8 NA 1 NA NA
#> 8 9 NA 1 NA NA
#> 9 11 NA NA 1 NA
由reprex package(v0.2.1)于2019-02-22创建