2017-02-27 28 views
0

抱歉的簡單問題,但我有一個data.frame(df1)的例如200行和69列與一些NA和一些值等於35和另一個「data.frame」 (df2)200行1列無NA。我想將df2與df1的每一列相加,當NA爲NA時爲NA,而當df1中的條目爲35時,爲35。例如:data.frames忽略一些值的總和

df1  
Col1  Col2  Col3  
    5  35  21  
NA  4   12  
35  1   NA  
....  ....  ...... 

df1  
Estimates  
    5  
    1  
    9  
...  

所需的輸出:

df1  
Col1  Col2  Col3  
10  35  26  
NA  5   13  
35  10  NA  
....  ....  ...... 

誰能幫助我嗎?

預先感謝

+0

'DF1 [] < - lapply(DF1,\'+ \',DF2 $估計)'或使用矩陣:'的數據。幀(as.matrix(df1)+ df2 $估計值)' – alistaire

+0

但在'col2'你改變了35到40(35 + 5)... – Sotos

+0

對不起,錯誤! – Bfu38

回答

2

一種方式去,

#create logical matrix of df1 == 35 
m1 <- df1 == 35 

df1[] <- lapply(df1, function(i) i+df2$Estimates) 
df1[m1] <- 35 
df1 
# Col1 Col2 Col3 
#1 10 35 26 
#2 NA 5 13 
#3 35 10 NA