Hello,
Sorry, I obviously read in a hurry.
icol <- grepl("flag", names(mydf))
is.na(mydf[!icol]) <- mydf[icol] == 0
mydf
# A A_flag B B_flag
#1 8 10 5 12
#2 NA 0 6 9
#3 10 1 NA 0
#4 NA 0 1 5
#5 5 2 NA 0
Hope this helps,
Rui Barradas
On 11/22/2017 11:19 AM, Massimo Bressan wrote:
...well, I don't think this is exactly the expected result (see my post)
to be noted that the columns affected should be "A" and "B"
thanks for the help
max
----- Messaggio originale -----
Da: "Rui Barradas" <ruipbarra...@sapo.pt>
A: "Massimo Bressan" <massimo.bres...@arpa.veneto.it>, "r-help"
<r-help@r-project.org>
Inviato: Mercoledì, 22 novembre 2017 11:49:08
Oggetto: Re: [R] assign NA to rows by test on multiple columns of a data frame
Hello,
Try the following.
icol <- which(grepl("flag", names(mydf)))
mydf[icol] <- lapply(mydf[icol], function(x){
is.na(x) <- x == 0
x
})
mydf
# A A_flag B B_flag
#1 8 10 5 12
#2 7 NA 6 9
#3 10 1 2 NA
#4 1 NA 1 5
#5 5 2 0 NA
Hope this helps,
Rui Barradas
On 11/22/2017 10:34 AM, Massimo Bressan wrote:
Given this data frame (a simplified, essential reproducible example)
A<-c(8,7,10,1,5)
A_flag<-c(10,0,1,0,2)
B<-c(5,6,2,1,0)
B_flag<-c(12,9,0,5,0)
mydf<-data.frame(A, A_flag, B, B_flag)
# this is my initial df
mydf
I want to get to this final situation
i<-which(mydf$A_flag==0)
mydf$A[i]<-NA
ii<-which(mydf$B_flag==0)
mydf$B[ii]<-NA
# this is my final df
mydf
By considering that I have to perform this task in a data frame with many
columns I’m wondering if there is a compact and effective way to get the final
result with just one ‘sweep’ of the dataframe?
I was thinking to the function apply or lapply but I can not properly conceive
how to…
any hint for that?
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.