2017-10-23 23 views
0

これは超簡単な質問だと思いますが、わかりません。rで2つの変数を組み合わせる

私は2つの変数:varAvarBを持っています。

varA、値'a'NAを有し、VARBの値'b'NAを有しています。

私はvarAvarB=='b'=='a''b''a'を持つ一つの変数varCにそれらを結合したいです。

私はこれ試してみました:

varC <- varA 
varC[varB=='b'] <- varB 

を私はエラーを取得:私はここで間違って何をやっている

Error in [<-.factor(tmp, varB == "b", : NAs are not allowed in subscripted assignments

+1

'NA ==" b "'は 'NA'を返します。 'varC [NA] < - 1'のような代入を行うときには' NA'は許されません - おそらくあなたのテストを 'varB ==" b "' ''(varB == 'b ') '。 – thelatemail

+0

関連する議論:https://stackoverflow.com/questions/26893023/nasestare/not-allowed-in-subscripted-assignments – thelatemail

+1

'varC [(varB == 'b')] < - varB [which(varB == 'b')] ' – Suren

答えて

1

varBNAの場合、条件varB=='b'は、NAを返します。 NAをテストするにはis.na()を使用してください。ここに例があります:

a <- c(NA, 'a', NA) 
b <- c('b', NA, 'b') 

c <- a 
c[is.na(c)] <- b[is.na(c)] 

c 

[1] "b" "a" "b" 
+0

これはうまくいきましたが、まずas.numeric()を使って変換しなければなりませんでした。私のデータセットはr形式のものに変わったと思います。シンプルなソリューションをありがとう。 –

関連する問題