У меня есть большой файл xlsx; Меня интересуют 2 столбца: pat_id
и param_1
.
Исходный файл выглядит так (я заменил значения точками, чтобы быстрее печатать):
......pat_id...........param_1..........
row1 ........123...............0.............
...
...
rowi ........456...............1.............
...
rowk ........789...............5.............
...
rown ........................................
У меня есть файл меньшего размера:
pat_id | param_1
123 55
456 33
789 22
Я хочу заменить значения param1
в исходном файле значениями из файла меньшего размера. Нравится:
......pat_id...........param_1..........
row1 ........123...............55.............
...
...
rowi ........456...............33.............
...
rowk ........789...............22.............
...
rown ........................................
Пока: 1) Я прочитал два файла в кадрах данных. 2) Затем я пытаюсь найти строку, где pat_id == 123, получить доступ к столбцу «param1» и присвоить новое значение (55).
Однако я сталкиваюсь с многочисленными ошибками.
Моя последняя версия:
data[data == 123, 'param1'] <- small_data[1, 'param1']
дает ошибку:
Error in `[<-.data.frame`(`*tmp*`, data == curr_pat_id, column, value = "55") :
non-existent rows not allowed
По какой-то причине, когда data[data == 123, 'param1']
возвращает NA
...
Я пытался изучить альтернативы объединения/объединения, но не нашел подходящего решения.
По сути, я просто хочу сказать "где в данных pat_id == 123 замените его значение param_1 на 55".
match
т.е.df1$param_1 <- df2$param_1[match(df1$pat_id, df2$pat_id)]
- person akrun   schedule 09.08.2016...
. Таким образом, это не воспроизводимо для других тестов. - person akrun   schedule 10.08.2016