我想根据另一列中的条件获取行的标准偏差和中位数。
我想说我希望x
列的标准偏差(sd
)仅取main+1
和main-1
范围之间的值,{{{ 1}}。
所以我试过
median
所以我做了
set.seed(2000)
df <- data.frame(x=rnorm(10,5,sd=2),main=4)
> df
x main
1 3.292314 4
2 4.294221 4
3 6.780299 4
4 8.482573 4
5 6.832157 4
6 2.646797 4
7 1.123124 4
8 9.188757 4
9 5.450950 4
10 7.352552 4
这很奇怪,因为当我手动检查library(dplyr)
df%>%
mutate(sd_range=sd(x[main+2&main-2]),med_range=median(x[main+1]))
x main sd_range med_range
1 3.292314 4 2.644843 6.832157
2 4.294221 4 2.644843 6.832157
3 6.780299 4 2.644843 6.832157
4 8.482573 4 2.644843 6.832157
5 6.832157 4 2.644843 6.832157
6 2.646797 4 2.644843 6.832157
7 1.123124 4 2.644843 6.832157
8 9.188757 4 2.644843 6.832157
9 5.450950 4 2.644843 6.832157
10 7.352552 4 2.644843 6.832157
x值sd
时
main+2&main-2
无法理解为什么情况不起作用。
提前致谢!