我遇到了一个新问题,我所有在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无法将这些变量识别为相同的变量?
答案 0 :(得分:0)
好吧,正如@MichaelChirico猜到的,空白的编码方式不同。这是通过对看起来相同的两个变量调用charToRaw()来发现的。 charToRaw(nst [720,2])用于A.J.如前所述。我通过运行来解决此问题:
nst[,2] <- gsub("\u00A0", " ", nst[,2], fixed = TRUE)
删除了错误的编码,然后让我合并。感谢Michael为我提供了查找问题的指南!