【发布时间】:2017-07-07 20:55:22
【问题描述】:
我正在尝试使用 sapply 或 lapply 简化以下多个 ifelse 代码(仍然无法区分它们)。
我的目标是根据位置分配积分,如下所示。
df$Point <- ifelse(df$Placement_v2 <= 1, 10,
ifelse(df$Placement_v2 <= 10, 9,
ifelse(df$Placement_v2 <= 25, 8,
ifelse(df$Placement_v2 <= 50, 7, 1) )))
此代码工作正常,但我想制作一个数据框,并使用 sapply 或 lapply(或任何其他函数)简单地制作我上面的代码。
我已经尝试过这段代码,但没有按预期工作。只有位置为 1 的行获得 10 分,其他行最终获得 1。
df$Point <- sapply(df2$Placement, function(x) ifelse(df$Placement_v2 <= x, df2$Point[df2$Placement == x], 1 ) )
我该如何解决这个问题?
【问题讨论】:
标签: r if-statement lapply sapply