R加入归还所有不适用

时间:2018-09-19 05:20:23

标签: r dplyr data.table

我遇到了一个新问题,我所有在R中联接数据表的尝试都导致NA。我有理由确定这一定是因为我的联接列不同,但是我不确定如何。

数据最初来自CSV,但我也尝试过将其转换为字符并进行连接。

数据示例以及我在下面尝试过的操作

course

我尝试过的事情:

student_takes_course

创建

str(nst)
'data.frame':   890 obs. of  33 variables:
 $ X               : logi  NA NA NA NA NA NA ...
 $ Player          : chr  "Connor McDavid" "Claude Giroux" "Nikita Kucherov" "Evgeni Malkin" ...
 $ Team            : Factor w/ 88 levels "ANA","ANA, MTL",..: 42 73 82 74 32 60 49 74 87 74 ...
 $ Position        : Factor w/ 7 levels "C","C, L","C, R",..: 1 1 7 1 1 5 1 7 7 1 ...
 $ GP              : int  82 82 80 78 74 76 82 82 81 82 ...
 $ TOI             : num  1767 1670 1586 1481 1473 ...
 $ Goals           : int  41 34 39 42 39 39 35 34 23 29 ...

str(hockey_ref)
'data.frame':   1035 obs. of  28 variables:
 $ Rk    : int  1 2 2 2 3 4 5 6 7 7 ...
 $ Player: chr  "Justin Abdelkader" "Pontus Aberg" "Pontus Aberg" "Pontus Aberg" ...
 $ Age   : int  30 24 24 24 26 25 20 21 26 26 ...
 $ Pos   : Factor w/ 5 levels "C","D","LW","RW",..: 3 3 3 3 1

创建

merge1 <- merge(hockey_ref,nst,by.x='Player',by.y='Player',all=TRUE)

,依此类推。

我在这里到此结束,任何人都知道为什么r无法将这些变量识别为相同的变量?

1 个答案:

答案 0 :(得分:0)

好吧,正如@MichaelChirico猜到的,空白的编码方式不同。这是通过对看起来相同的两个变量调用charToRaw()来发现的。 charToRaw(nst [720,2])用于A.J.如前所述。我通过运行来解决此问题:

nst[,2] <- gsub("\u00A0", " ", nst[,2], fixed = TRUE)

删除了错误的编码,然后让我合并。感谢Michael为我提供了查找问题的指南!