2016-07-08 11 views
0

データフレームは、負でない整数からなるRで構成されています。私は0または1ように、データフレーム内の各値を変換したい:x => x > 0 ? 1 : 0データフレーム内の各値を0または1にマップする方法

私はapply()方法に遭遇しましたが、これは、入力として行全体/ COLを取るように見えます。個々のデータポイントを新しい値にマッピングする方法はありますか?

+1

'DF [] < - as.numeric(DF> 0)'。 – Psidom

+0

残念ながら、Rには三項演算子がなく、 'as.integer(x> 0)'を実行するだけです(TRUE/FALSEは1/0に強制されるため)。 – Frank

+0

@Psidom @Frankありがとう!私はRには新しく、LHSで 'df'の代わりに' df [] 'を使わなければならない理由を説明できますか?また、 'as.numeric()'と 'as.integer()'の違いは何ですか? – fvgs

答えて

0

ifelseは三項演算子と同様に使用できます。ここ

は一例であり:

x <- c(1,2,3,4,0) 
x <- ifelse(x > 0 , 1 , 0) 
x 
[1] 1 1 1 1 0 

別の例として、データフレームについて:

df <- data.frame(A=c(0,0,0,1,2,3), B=c(0,10,20,30,40,0)) 
> df 
    A B 
1 0 0 
2 0 10 
3 0 20 
4 1 30 
5 2 40 
6 3 0 

modified_df <- data.frame(A = ifelse(df$A > 0 , 1 , 0) , B = ifelse(df$B > 0 , 1 , 0)) 

> modified_df 
    A B 
1 0 0 
2 0 1 
3 0 1 
4 1 1 
5 1 1 
6 1 0 
関連する問題