【发布时间】:2018-07-27 18:40:36
【问题描述】:
在下文中,data1 是一个主数据库。 data2 是将分数映射到级别的函数。我想为 data1 分配级别。
data1 <- data_frame(id=1:6,score=1:6-0.1)
data2 <- data_frame(score=2:4,level=c("a","b","c"))
最终输出:
id score level
1 0.9 a
2 1.9 a
3 2.9 b
4 3.9 c
5 4.9 c
6 5.9 c
基本上,
if score < data2$score[1], level = data2$score[1].
if score > data2$score[length(data2$score)], level = data2$score[length(data2$score)].
if data2$score[i] < score < data2$score[i+1], level = data2$level[i]
有没有办法用 dplyr(最好)或 base R 来实现这一点?我知道 data.table 可能有办法做到这一点,但我也想寻求其他一些选择
【问题讨论】:
-
为什么最后输出的第4行是a b?
-
@Gregor 错字。对不起