非常基本的问题,但不知道如何开始:
我已经生成了200个随机值:
SE <- runif(200, 0, 0.65)
除此之外,我想创建3列:se.sw
,se.m
和se.st
,其中包含来自区间[0,0.05],] 0.05,0.35]和0.35的值,分别为0.65。
我该如何实现这个目标?
我尝试过使用嵌套的ifelse
函数,但它没有用。这似乎是一个简单的问题,我花了太多时间... ...
答案 0 :(得分:0)
> SE.SW <- SE[SE >=0 & SE <= .05 ]
> SE.M <- SE[SE >.05 & SE <= .35 ]
> SE.ST <- SE[SE >.35 & SE <= .65 ]
答案 1 :(得分:0)
在基地R中使用findInterval
和split
:
x <- findInterval(SE, c(0,0.05,0.35,0.65))
split(SE, x)
# $`1`
# [1] 0.04016108
# $`2`
# [1] 0.1725806 0.2418805 0.1310933
# $`3`
# [1] 0.3723547 0.5903351 0.5839533 0.6140389 0.4295186 0.4089241
或使用cut
和split
:
x <- cut(SE, breaks = c(0,0.05,0.35,0.65))
split(SE, x)
# $`(0,0.05]`
# [1] 0.04016108
# $`(0.05,0.35]`
# [1] 0.1725806 0.2418805 0.1310933
# $`(0.35,0.65]`
# [1] 0.3723547 0.5903351 0.5839533 0.6140389 0.4295186 0.4089241
数据强>
set.seed(1)
SE <- runif(10, 0, 0.65)