【发布时间】:2022-01-11 19:01:13
【问题描述】:
我正在尝试将从图表审查中收集的新数据添加到我的数据库中,但似乎无法到达那里。
我尝试编写一个新变量,然后使用逻辑函数来选择要使用的数据点,但使用整个变量不起作用,因为它是一个向量而不是单个数据点。如何对其进行编程以使用来自相同观察但不同变量的数据点?
mydf <- structure(list(Year = c(2014L, 2014L, 2015L, 2015L, 2016L),
Var1 = c(15, 12, 2, 16, NA),
Var2 = c(15, 13, 104, NA, NA),
Agree = c(1, 0, 0, 1, 1)),
.Names = c("Year", "Var1", "Var2", "Agree"),
row.names = c(NA, 5L), class = "data.frame")
## mydf
# Year Var1 Var2 Agree
# 1 2014 15 15 1
# 2 2014 13 12 0
# 3 2015 2 104 0
# 4 2015 16 NA 1
# 5 2016 NA NA 1
mydf$true <- if_else(mydf$Agree == 1, mydf$Var1, mydf$Var2)
## Error Message
# Error: `true` must be length 0 (length of `condition`) or one, not 5.
# Run `rlang::last_error()` to see where the error occurred.
## What I want
# Year Var1 Var2 Agree True
# 1 2014 15 15 1 15
# 2 2014 13 12 0 12
# 3 2015 2 104 0 104
# 4 2015 16 NA 1 16
# 5 2016 NA NA 1 NA
有什么想法吗?
【问题讨论】:
-
执行您的代码时,我得到了正确的输出。该错误可能是由于您使用函数
if_else加载了多个包。 -
也许可以试试 ifelse 函数而不是 if_else ?