将基于匹配条件的值分配给另一个变量

时间:2014-06-01 19:22:24

标签: r if-statement

我想在R:

中写这样的东西
If (df$age<5) {df$child=1}
else {df$child=NA}

但它不适合我。

你可以纠正吗?

2 个答案:

答案 0 :(得分:3)

您必须将if的结束}放在与下一个else相同的行上,所以请尝试这样:

child <- NA
If (age<5) child <- 1

由于您正在使用向量,因此最好使用ifelse

df$child <- ifelse(df$age < 5, 1, NA)

或更好(语法糖)使用ifelsetransform

transform(df,child = ifelse(age<5, 1 ,NA))

答案 1 :(得分:1)

ifelse无法使用向量。您应该使用ifelse

df$child <- ifelse(df$age<5, 1 ,NA)

如果你带有标量的dela,这里有写if的R方式,else语句:

age <- 2
x <- if(age<5) 1 else NA