我正在使用R并希望停止使用分支和语句来利用apply函数。话虽这么说,我有这个清单,x:
x < - c(5,12,19,26,2,9,16,23)
我想要一个相应的列表如下:
for i in x
if (i<=7) 1
else if (i<=14) 2
else if (i<=21) 3
else if (i<=28) 4
else 5
最终的新名单将是:1,2,3,4,1,2,3,4
如何使用其中一个apply语句执行此操作?每次我尝试写一个,我最后都会挠头一小时,然后在这里发一个问题。
谢谢。
答案 0 :(得分:2)
只需使用cut
:
x <- c(5, 12, 21, 35)
as.integer(cut(x, c(-Inf, 7, 14, 21, 28, Inf)))
#[1] 1 2 3 5
答案 1 :(得分:0)
显示ifelse use:
ifelse(x<7,1,ifelse(x<14,2,ifelse(x<21,3,ifelse(x<28,4,5))))
[1] 1 2 3 4 1 2 3 4