【发布时间】:2013-04-08 07:06:05
【问题描述】:
有人可以帮助我了解ifelse的使用。
我有一个 data.frame (dat) 和一个名为 Q1 (dat$Q1) 的分类变量/因子。 dat$Q1 被编码为 1,2,3 或 4。我需要根据以下规则创建一个新列 data$new1:
如果dat$Q1 == 3 那么dat$new1 应该是1。否则,dat$new1 应该是 0。
请问最有效的方法是什么?
【问题讨论】:
有人可以帮助我了解ifelse的使用。
我有一个 data.frame (dat) 和一个名为 Q1 (dat$Q1) 的分类变量/因子。 dat$Q1 被编码为 1,2,3 或 4。我需要根据以下规则创建一个新列 data$new1:
如果dat$Q1 == 3 那么dat$new1 应该是1。否则,dat$new1 应该是 0。
请问最有效的方法是什么?
【问题讨论】:
使用ifelse,如:
dat$new1 <- ifelse(dat$Q1==3, 1, 0)
【讨论】:
只是:
dat$new1 <- 0+(dat$Q1==3) # or use as.numeric(.)
【讨论】:
as.numeric 具有使用 microbenchmark 的优势。它似乎也更惯用。 +1
1+as.numeric(dat$Q1==3)。