【发布时间】:2018-04-05 01:01:41
【问题描述】:
我正在尝试将 FICO 分数分为三类,并希望创建一个可以显示相应值的新列。
我的数据:
FICO
650
450
700
预期输出
FICO Category
650 Moderate
450 Poor
700 Excellent
我为此写了一个 if 语句
model_data$ficocategory <- if (model_data$FICO>=350 &&
model_data$FICO<=500) {
print("POOR")
} else if (model_data$FICO>=501 && model_data$FICO<=650) {
print("MODERATE")
} else
print("EXCELLENT")
但我得到的输出是
[1] "MODERATE"
【问题讨论】:
-
&&未矢量化。使用&。 -
@JohnColeman 如果我只使用 '&' 它会输出 [1] "EXCELLENT"
-
如果你想创建一个向量——你还应该使用
ifelse()函数 而不是if ... else构造。另外——在赋值语句中间打印似乎有点奇怪。 -
也尝试过这样做。 ifelse(model_data$FICO>=350 & model_data$FICO=501 & model_data$FICO= 350 & model_data$FICO
-
试试
model_data$ficocategory <- ifelse(model_data$FICO>=350 & model_data$FICO<=500,"POOR",ifelse(model_data$FICO>=501 & model_data$FICO<=650,"MODERATE","EXCELLENT"))
标签: r if-statement