r - ifelse statement with factor variable output -


i have dataframe df

  snp           effect   a1 a2 8  rs12145743    -0.0203  t  g 31  rs4650994    -0.0210   g 26  rs2602836     0.0192   g 34  rs4976033     0.0215   g 10 rs12525163    -0.0215  t  c 1  rs10282707    -0.0250  t  c 33  rs4917014    -0.0222  t  g 23  rs2293889    -0.0312  t  g 32  rs4871137    -0.0209  t  g 43   rs970548    -0.0258   c 27  rs2923084     0.0256   g 24  rs2303975     0.0279   g 36   rs499974    -0.0263   c 35  rs4983559    -0.0197   g 13 rs16942887     0.0831   g 16 rs17695224    -0.0290   g 18   rs181362    -0.0379  t  c 

i creating new variable new_a1 different depending on value of effect.

if effect>0, new_a1 should contain value of a1.

if effect<0, new_a1 should contain value of a2.

i trying using following ifelse statement:

df$new_a1 <- ifelse(df$effect>0, df$a1, df$a2) 

however, output not expected. new_a1 contains 1s , 2s, instead of maintaining values of factors in original variables a1 , a2

  snp           effect   a1 a2 new_a1 8  rs12145743    -0.0203  t  g      2 31  rs4650994    -0.0210   g      2 26  rs2602836     0.0192   g      1 34  rs4976033     0.0215   g      1 10 rs12525163    -0.0215  t  c      1 1  rs10282707    -0.0250  t  c      1 33  rs4917014    -0.0222  t  g      2 23  rs2293889    -0.0312  t  g      2 32  rs4871137    -0.0209  t  g      2 43   rs970548    -0.0258   c      1 27  rs2923084     0.0256   g      1 24  rs2303975     0.0279   g      1 36   rs499974    -0.0263   c      1 35  rs4983559    -0.0197   g      2 13 rs16942887     0.0831   g      1 16 rs17695224    -0.0290   g      2 18   rs181362    -0.0379  t  c      1 

handling factor variables a1 , a2 character variables gives appropriate output.

hdl.dir$new_a1 <- ifelse(hdl.dir$hdl_effect<0, as.character(hdl.dir$a2), as.character(hdl.dir$new_a1))


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -