R语言 如何使用两个表中的数据将访视名称应用于受试者ID

gywdnpxw  于 2023-03-15  发布在  其他
关注(0)|答案(4)|浏览(121)

我有两个表,第一个是包含受试者ID的单列,第二个是包含访视名称的单列

library(tibble)

subjects <- tibble("Subject Id" = c("1-1", "1-2", "1-3"))

# A tibble: 3 x 1
  `Subject Id`
  <chr>       
1 1-1         
2 1-2         
3 1-3)
                   
visits <- tibble("Visits" = c("a", "b", "c"))

# A tibble: 3 x 1
  Visits
  <chr> 
1 a     
2 b     
3 c

我想创建一个类似这样的表,这样我就可以看到每个受试者的每个潜在访问。
| 受试者编号|访视|
| - ------|- ------|
| 1-1 |项目a|
| 1-1 |B|
| 1-1 |(c)秘书长的报告|
| 1-2 |项目a|
| 1-2 |B|
| 1-2 |(c)秘书长的报告|
我一直试图找到一个好的解决方案,但所有类似的问题,我发现回到做一个合并,这似乎不像是正确的解决方案,我想做的。

wj8zmpe1

wj8zmpe11#

我们可以使用crossing

library(tidyr)
crossing(subjects, visits)
  • 输出
# A tibble: 9 × 2
  `Subject Id` Visits
  <chr>        <chr> 
1 1-1          a     
2 1-1          b     
3 1-1          c     
4 1-2          a     
5 1-2          b     
6 1-2          c     
7 1-3          a     
8 1-3          b     
9 1-3          c

或者使用base R

expand.grid(c(subjects, visits))
  Subject Id Visits
1        1-1      a
2        1-2      a
3        1-3      a
4        1-1      b
5        1-2      b
6        1-3      b
7        1-1      c
8        1-2      c
9        1-3      c
6ljaweal

6ljaweal2#

碱基R:

merge(subjects, visits, by = NULL)

  Subject.Id Visits
1        1-1      a
2        1-2      a
3        1-3      a
4        1-1      b
5        1-2      b
6        1-3      b
7        1-1      c
8        1-2      c
9        1-3      c
sshcrbum

sshcrbum3#

在Base R中,可以执行outer连接

merge(subjects, visits)
  Subject Id Visits
1        1-1      a
2        1-2      a
3        1-3      a
4        1-1      b
5        1-2      b
6        1-3      b
7        1-1      c
8        1-2      c
9        1-3      c

如果您需要按ID的顺序排列:

rev(merge(visits, subjects))
  Subject Id Visits
1        1-1      a
2        1-1      b
3        1-1      c
4        1-2      a
5        1-2      b
6        1-2      c
7        1-3      a
8        1-3      b
9        1-3      c
n3schb8v

n3schb8v4#

使用dplyr包中的cross_join()

library(dplyr)
cross_join(subjects,visits)

  `Subject Id` Visits
  <chr>        <chr> 
    1-1          a     
    1-1          b     
    1-1          c     
    1-2          a     
    1-2          b     
    1-2          c     
    1-3          a     
    1-3          b     
    1-3          c

相关问题