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
Post a Comment