У меня есть 2 набора данных: один с результатами теста (nedl_1), а другой с большим количеством результатов теста (subset_cal1) и временем для этих тестов (dc_time). Я хотел бы объединить данные по идентификатору, указанному в столбце «Файл» (например, 180061). Сначала я транспонировал subset_cal1, и теперь имена столбцов в обоих наборах данных примерно одинаковы (кроме «.»). Тогда я постараюсь присоединиться к ним. Однако объединение их невозможно, так как один набор данных является числовым, а другой является фактором (из-за транспонирования).
Я принудительно преобразовал subset_cal_1 в числовое значение, а столбец dc_time - в число. Я думаю, что заставляю что-то делать здесь, и я бы лучше научился делать это правильно, потому что это произойдет снова.
nedl_1
Wavelength 18005.1 18006.1 18009.1 18010.1 18012.1
1 350 7.920042e-10 8.118013e-10 1.002651e-09 7.379407e-10 9.285596e-10
2 351 7.990535e-10 6.535653e-10 1.275650e-09 5.742704e-10 9.042697e-10
subset_cal1
File dc_time Channels it calibration instrument_num
1 180061 Fri Jan 20 15:37:40 2012 2151 136 1 18006
2 180091 Fri Jan 27 13:30:23 2012 2151 136 1 18009
3 180101 Fri Jan 27 09:41:38 2012 2151 136 1 18010
4 180121 Tue Feb 28 12:15:02 2012 2151 136 1 18012
Вот код, который я использовал для транспонирования subset_cal1 и затем соединения с nedl_1
n <- subset_cal1$File # remember the characters in $File
sh_raw <- as.data.frame(t(subset_cal1[,-1])) # transpose all but $File
colnames(sh_raw) <- n # change colnames to those stored in n
dups <- unique(as.list(sh_raw)) # list the duplicate cols
sh_raw_2 <- sh_raw[!duplicated(dups)] # remove duplicate cols
j_raw_nedl <- left_join(sh_raw, nedl_1) #join matching cols
Ошибка: невозможно присоединиться к '18051.1' x '18051.1' из-за несовместимых типов (числовой / символьный)