data manipulation - Conditional replacement of one column by another ( R ) -
so, col's , prob's can thought of package; go together, e.g., col2 "goes with" prob2.
how can make if cell in col
<na>
, prob
corresponds replaced <na>
?
data:
col2 prob2 col3 prob3 col4 prob4 col5 prob5 2 0.126269620610401 <na> 0.979143074247986 <na> 0.150689669651911 <na> 0.11148908524774 3 0.730431054253131 <na> 0.826114872703329 <na> 0.368350319797173 <na> 0.299717969959602 2 0.320544729940593 3 0.0434977798722684 4 0.859434255165979 11 0.150506388396025 2 0.0354198240675032 3 0.240764779038727 5 0.276169682852924 <na> 0.0449998050462455
goal:
col2 prob2 col3 prob3 col4 prob4 col5 prob5 2 0.126269620610401 <na> <na> <na> 0.150689669651911 <na> <na> 3 0.730431054253131 <na> <na> <na> 0.368350319797173 <na> <na> 2 0.320544729940593 3 0.0434977798722684 4 0.859434255165979 11 0.150506388396025 2 0.0354198240675032 3 0.240764779038727 5 0.276169682852924 <na> <na>
building off previous answer, here's 1 way programatically across of column-prob pairs:
x <- data.frame(col2 = c(na, na, 1,2), prob2 = runif(4), col3 = c(3,4,na,na), prob3 = rnorm(4)) colcolumns <- grep("col", names(x)) (j in colcolumns) { x[ j+1] <- ifelse(is.na(x[, j]), na, x[, j+1]) }
resulting int:
col2 prob2 col3 prob3 1 na na 3 1.359170 2 na na 4 1.165798 3 1 0.2701173 na na 4 2 0.6411366 na na
Comments
Post a Comment