Я упускаю нечто явно простое и очевидное в этой простой операции left_join
, которая не работает. У меня есть один фрейм данных одного столбца:
time_seconds
<dbl>
1 0
2 0.1
3 0.2
4 0.3
5 0.4
6 0.5
7 0.6
8 0.7
9 0.8
10 0.9
К которому я хочу присоединиться к некоторым спортивным данным (небольшая выборка моего полного df, но отображает проблему):
number time_seconds distance_meters pace_seconds watts cal_hr cadence heart_rate
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 0.7 2 144. 117 704 0 0
2 2 0.9 3 144. 117 704 0 0
Однако мой left_join присоединяется только ко второй строке.
x %>% left_join(y, by = "time_seconds")
# A tibble: 10 x 8
time_seconds number distance_meters pace_seconds watts cal_hr cadence heart_rate
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 NA NA NA NA NA NA NA
2 0.1 NA NA NA NA NA NA NA
3 0.2 NA NA NA NA NA NA NA
4 0.3 NA NA NA NA NA NA NA
5 0.4 NA NA NA NA NA NA NA
6 0.5 NA NA NA NA NA NA NA
7 0.6 NA NA NA NA NA NA NA
8 0.7 NA NA NA NA NA NA NA
9 0.8 NA NA NA NA NA NA NA
10 0.9 2 3 144. 117 704 0 0
В моем полном наборе данных кажется совершенно случайным, какие строки из y
на самом деле объединяются. Все строки в y
имеют уникальные time_seconds
значения.
structure(list(number = c(1, 2), time_seconds = c(0.7, 0.9),
distance_meters = c(2, 3), pace_seconds = c(143.9, 143.9),
watts = c(117, 117), cal_hr = c(704, 704), cadence = c(0,
0), heart_rate = c(0, 0)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -2L)) -> y
structure(list(time_seconds = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
0.7, 0.8, 0.9)), row.names = c(NA, -10L), class = c("tbl_df",
"tbl", "data.frame")) -> x