【问题标题】:Innerjoin results in empty tibble in RInnerjoin 导致 R 中的 tibble 为空
【发布时间】:2019-02-24 20:16:50
【问题描述】:

我有两个带有等效键的小标题(西班牙和加拿大),我正在尝试通过“国家/地区”加入它们。下面是它们的样子:

Country stratum  oecd schoolID studentID booklet     q   q_1   q_2   q_3   q_4   
                                                                             q_5   q_6   q_7   q_8   q_9
<chr>   <chr>   <int> <chr>    <chr>       <int> <int> <int> <int> <int> <int> 
                                                              <int> <int> <int> <int> <int>
 1 ESP     ESP1633     1 0000001  00005           5    NA     0    NA     1     0     0     1     0     0    NA
 2 ESP     ESP1633     1 0000001  00014           5    NA     0    NA     1     1     1     2     0     1    NA
 3 ESP     ESP0306     1 0000002  00040           5    NA     0    NA     1     0     1     2     0     1    NA
 4 ESP     ESP0306     1 0000002  00041           5    NA     0    NA     1     0     1     2     0     1    NA
 5 ESP     ESP1633     1 0000003  00062           5    NA     0    NA     0     1     1     2     0     0    NA
 6 ESP     ESP1427     1 0000004  00102           5    NA     0    NA     0

Country stratum  oecd schoolID studentID booklet     q   q_1   q_2   q_3   q_4   
q_5   q_6   q_7   q_8   q_9
   <chr>   <chr>   <int> <chr>    <chr>       <int> <int> <int> <int> <int> 
<int> <int> <int> <int> <int> <int>
 1 CAN     CAN0762     1 0000001  00014           5    NA     0    NA     1     1     1     2     1     1    NA
 2 CAN     CAN0762     1 0000001  00020           5    NA     0    NA     1     1     1     2     1     0    NA
 3 CAN     CAN0542     1 0000002  00039           5    NA     0    NA     1     0     1     2     1     1    NA
 4 CAN     CAN0652     1 0000003  00061           5    NA     0    NA     1     1     1     2     0     1    NA
 5 CAN     CAN0652     1 0000003  00063           5    NA     0    NA     1     0     1     2     2     1    NA
 6 CAN     CAN0652     1 0000004  00078           5    NA     0    NA     0     0     1     1     0     1    NA

当我尝试任一时

combo<-inner_join(spain,canada,by='Country')

spain%<%
innerjoin(canda,by='Country')

我得到的结果是

A tibble: 0 x 227
# ... with 227 variables: Country <chr>, stratum.x <chr>, oecd.x <int>, 

请帮忙!我的直觉是 tibble 应该是大约 3500 行(西班牙 + 加拿大的总值)我想得到它,以便西班牙和加拿大的所有值都在一个 tibble 中,以便我最终可以执行差异项目功能(DIF ) 分析。提前致谢!

【问题讨论】:

  • 您应该使用full_join,因为国家/地区不同,因此没有过度实验室,因此inner_join 中没有任何内容
  • 您的内部连接要求提供 country='spain' & country='canada' 的行。自“西班牙”“加拿大”以来没有这样的行。您似乎希望 country='spain' 的行合并 country='canada' 的行,即 country='spain' 或 country='canada' 的行。这也是国家='西班牙'的行的选择/限制的关系联合,国家='加拿大'的行的选择/限制。它也是 country='spain' 或 country='canada' 的内部连接。完全连接是内部连接行联合由空值扩展的不匹配行,因此您可以对联合使用 false 完全连接。

标签: r inner-join tibble


【解决方案1】:

如果您只想将两个小标题合并为一个,并且它们具有您要使用的相同列

combo <- rbind(spain, canada)

library(dplyr)
combo <- bind_rows(spain, canada)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多