【发布时间】:2020-09-24 23:01:18
【问题描述】:
下面是我正在使用的代码。这个想法是我们有一个变量“habitaciones”,它计算酒店的房间数量。我创建了一个名为 hrango 的新变量,它的范围基于房间的数量。 20 人以下的酒店是小型酒店,21 到 40 人是中型酒店,40 人以上是大型酒店。您可以看到我如何尝试使用运算符来处理它。
我运行此代码时的问题是,任何少于 10 个房间的酒店都被标记为大,而任何超过 100 个房间的酒店都被标记为小,我似乎无法弄清楚为什么。我开始使用基于“替换”的代码,该代码无法正常工作,移至 ifelse,但仍然无法获得我想要的结果。
任何帮助将不胜感激。
full_data <- full_data %>%
mutate (hrango = ifelse(habitaciones < 21, "Hoteles Pequenos",
ifelse(habitaciones > 20 & habitaciones < 41, "Hoteles Medios",
ifelse(habitaciones > 40, "Hoteles Grandes", hrango)
)
)
)
【问题讨论】:
-
请添加一个可重现的例子
-
会考虑使用
dplyr::case_when()而不是复杂的嵌套ifelse() -
您的问题可能与您在条件中使用“&”而不是“&&”这一事实有关。请下次上传一些我们可以使用的数据。
-
@Lluís,这是不正确的,
&在这里是合适的,&&是错误的。 (我同意样本数据。)(我根据habitaciones是full_data中的一列的假设做出&-vs-&&的确定。)
标签: r if-statement replace