lundi 10 août 2015

Ifelse set new value to old variable based on logical criterias

I have

> select(dff_all, id, device_idom, device_model )[1:9,]
        id device_idom                device_model
1  8989419       phone        iPhone5,2 (iPhone 5)
2  6411543       phone       iPhone4,1 (iPhone 4S)
3 12521771        <NA>             XT1033 motorola
4  4507411        <NA>                        <NA>
5 13474390        <NA>            GT-I9300 samsung
6 11049297        <NA>           GT-I9300I samsung
7 14835142        <NA>                        <NA>
8 10668268       phone iPhone6,1 (iPhone 5s (GSM))
9  6991492        <NA>             XT1032 motorola

And I want it to be

> select(dff_all, id, device_idom, device_model )[6:9,]
6 11049297        <NA>           GT-I9300I samsung
7 14835142        <NA>                        <NA>
8 10668268       phone iPhone6,1 (iPhone 5s (GSM))
9  6991492        android             XT1032 motorola

I want to put device_idom = android if device_idom = NA AND device_model != NA.

I tried this:

device_idom <- ifelse(
    dff_all$device_idom !== (pad | phone) 
    AND 
    is.na(dff_all$device_model) == FALSE,
    android,
    dff_all$device_idom)

Aucun commentaire:

Enregistrer un commentaire