【发布时间】:2017-11-10 18:42:06
【问题描述】:
我正在尝试在特定点之间对 R 中的一些数据进行子集化。具体来说,我希望只在最小值之后和最大值之前返回数据。我的数据集与下面的类似。所以,我正在尝试对第 8 点之后和第 20 点之前的点数据进行子集化。
x1
1. 4
2. 4
3. 5
4. 5
5. 5
6. 4
7. 3
8. 0
9. 1
10. 2
11. 2
12. 3
13. 3
14. 4
15. 5
16. 6
17. 6
18. 7
19. 8
20. 6
21. 4
22. 2
所以预期的输出是
8. 0
9. 1
10. 2
11. 2
12. 3
13. 3
14. 4
15. 5
16. 6
17. 6
18. 7
19. 8
我试过了
min <- min(x1)
max <- max(x1)
newdata <- subset(x1,x1<max|x1>min)
这将返回完全相同的数据集。这是有道理的,因为所有值都高于最小值或低于最大值。但是有没有办法专门从最小值到最大值获取数据并排除最小值之前和最大值之后的数据?谢谢
【问题讨论】:
-
if(which.min(z) < which.max(z)) z[which.min(z) : which.max(z)] else z[which.max(z) : which.min(z)]或者如果顺序无关紧要z[which.min(z) : which.max(z)]假设 z 是感兴趣的列(向量) -
你能提供一个预期输出的例子吗?
-
刚刚做了。感谢您的帮助