У меня странная проблема, при попытке сделать left_join
из dplyr
между двумя кадрами данных, скажем table_a
и table_b
, у которых есть общий столбец C
, я получаю много NA
с за исключением случаев, когда значения равны нулю в обоих, хотя значения в строках совпадают чаще.
Одна вещь, которую я заметил, состояла в том, что столбец C
в table_b
, которому я хотел бы соответствовать, имеет значения 0 как 0.0
, тогда как в table_a
, 0 отображается просто 0
.
Образец здесь
head(table_a)
дает
likelihood_ols LR_statistic_ols decision_ols C
1 -1.51591 0.20246 0 -10
2 -1.51591 0.07724 0 -9
3 -1.51591 0.00918 0 -8
4 -1.51591 0.00924 0 -7
5 -1.51591 0.08834 0 -6
6 -1.51591 0.25694 0 -5
а другой здесь
head(table_b)
quantile C pctile
1 2.96406 0.0 90
2 4.12252 0.0 95
3 6.90776 0.0 99
4 2.78129 -1.8 90
5 3.92385 -1.8 95
6 6.77284 -1.8 99
Теперь между столбцами C есть определенное совпадение, но найдены только нули, что сбивает с толку.
Когда я подставляю уникальные значения в столбцы C
в соответствии с
a <- sort(unique(table_a$C))
и b <- sort(unique(table_b$C))
Я получаю следующий сбивающий с толку вывод:
> a[2]
[1] -9
> b[56]
[1] -9
> a[2]==b[56]
[1] FALSE
Может кто-нибудь помочь мне разобраться, что здесь происходит? Я читаю значения, используя read.csv
, а csv генерируются один раз в CentOS и один раз в RedHat / Fedora, если это вообще играет роль. Я попытался заставить их быть тибблами или сначала в виде символов, а затем чисел, а также проверил все классы R, а также проверил обсуждаемые типы здесь , но безрезультатно, и все они совпадают.
Что еще может сделать их разными, и как мне сказать R, что они есть, чтобы я мог запустить свою функцию слияния? Большое спасибо!