0

我有一个很大的 xlsx 文件;我对 2 列感兴趣:pat_idparam_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”。

4

0 回答 0