【发布时间】:2014-01-22 12:54:53
【问题描述】:
我有一个包含以下列的数据框。我想写这样的条件语句:
df $ [df$literacy==FALSE,] eduyears <- 0
这意味着如果df $ literacy is FALSE,那么在该特定行的eduyears 列中它应该设置编号0。但是这个命令在我的系统上不起作用。
正确吗?如果不正确,我应该改用什么语句?
【问题讨论】:
标签: r if-statement dataframe
我有一个包含以下列的数据框。我想写这样的条件语句:
df $ [df$literacy==FALSE,] eduyears <- 0
这意味着如果df $ literacy is FALSE,那么在该特定行的eduyears 列中它应该设置编号0。但是这个命令在我的系统上不起作用。
正确吗?如果不正确,我应该改用什么语句?
【问题讨论】:
标签: r if-statement dataframe
你可以使用
df$eduyears[!df$literacy] <- 0
df$literacy 是一个逻辑向量。如果您否定它 (!),FALSE 将变为 TRUE(反之亦然)。这个向量可以用作df$eduyears的索引。
【讨论】:
如果我理解正确,那么应该这样做:
编辑:(评论后)
dat$eduyears <- ifelse(dat$literacy==FALSE,0,dat$eduyears)
假设您的输入如下所示:
那么
你的输出应该是这样的:
这是你想要的吗?
【讨论】: