2017-11-18 134 views
0

我有以下數據框:的R - 在與另一列的列替換值時,另一列是不缺的

IID sex longitude latitude longitude.1 latitude.1 longitude.2 latitude.2 
1234587 0 351500 383500   NA   NA   NA   NA 
5145633 1 431340 265505   NA   NA   NA   NA 
1305430 1 449500 244900  262500  265500   NA   NA 
5012044 0 445600 514300   NA   NA   NA   NA 
1234059 1  NA  NA  514300  514300  445500  445520 
3087662 0 444500 425200   NA   NA   NA   NA 
.... 
....etc 

我想longitude.1時的值來代替經度的值經緯1不會丟失,緯度和緯度也是如此。我想這應該是簡單,試過如下:

MyData$longitude[!is.na(MyData$longitude.1)] <- MyData$longitude.1 
MyData$latitude[!is.na(MyData$latitude.1)] <- MyData$latitude.1 

不過,我得到以下錯誤:

Warning message: 
In MyData$longitude[!is.na(MyData$longitude.1)] <- MyData$longitude.1 : 
    number of items to replace is not a multiple of replacement length 

我做了什麼錯?

結果應該是這樣的:

IID sex longitude latitude longitude.1 latitude.1 longitude.2 latitude.2 
1234587 0 351500 383500   NA   NA   NA   NA 
5145633 1 431340 265505   NA   NA   NA   NA 
1305430 1 262500 265500  262500  265500   NA   NA 
5012044 0 445600 514300   NA   NA   NA   NA 
1234059 1 514300 514300  514300  514300  445500  445520 
3087662 0 444500 425200   NA   NA   NA   NA 
.... 
....etc 
+1

左側yeilds兩個值,而邁德特$ longitude.1 yeilds 6.試試這個:'$ MyData的經度[is.na(邁德特$ longitude.1 )] < - MyData $ longitude.1 [!is.na(MyData $ longitude.1)]' – skrubber

+0

謝謝,這是行得通!如果你可以給出這個答案,我可以給你信用點和你應該得分:) – Abdel

回答

1

MyData$longitude[!is.na(MyData$longitude.1)]產量2 NA而MyData$longitude.1是所有的6個值。所以分配失敗。獲取longitude.1不是NA以及:

MyData$longitude[!is.na(MyData$longitude.1)] <- MyData$longitude.1[!is.na(MyData$longitude.1)] 

MyData$latitude[!is.na(MyData$latitude.1)] <- MyData$latitude.1[!is.na(MyData$latitude.1)] 
相關問題