我有一个列表,例如:
> generate_all[1,]
[1] 16 16 19 17 17 16 17 18 13 18 18 21 19 9 27 16 13 18 20 23 17 18 17 14 13 22 20 17 20 16 15 15 19 14 15 13 19 18 18 15 19
[42] 18 18 20 21 24 12 14 14 15 17 16 15 11 19 22 18 14 22 9 21 14 20 17 23 13 21 15 17 19 20 15 14 19 23 14 17 14 20 16 17 20
[83] 14 17 17 22 14 20 26 24 13 13 15 21 20 19 13 17 20 13 17 17 23 19 23 13 22 18 14 15 22 13 21 15 25 15 22 17 19 10 16 18 18
[124] 12 8 22 15 27 21 13 15 19 21 17 11 18 16 22 19 20 17 20 19 22 24 22 18 11 21 16 10 12 29 13 10 19 18 19 19 26 13 16 20 18
[165] 17 18 15 14 16 19 25 21 11 16 16 17 11 22 16 13 19 24 18 13 19 24 11 17 11 25 11 11 24 20 18 15 8 13 14 11 21 19 17 21 21
[206] 16 20 20 21 14 15 17 15 18 17 20 19 13 14 25 13 17 25 9 13 14 19 18 19 18 23 23 24 19 14 24 17 21 17 16 13 20 18 14 20 17
[247] 22 20 12 19 19 20 21 21 12 19 18 16 16 11 15 11 15 26 15 18 13 18 18 17 20 26 13 15 16 12 15 16 18 20 9 20 18 17 19 23 12
[288] 13 25 11 17 16 17 21 19 17 19 29 14 22 15 19 21 20 18 18 16 12 18 21 13 7 17 20 16 16 26 18 9 12 17 18 20 17 20 28 11 17
[329] 21 28 11 20 17 10 8 24 15 20 17 15 17 8 14 13 18 15 17 14 20 28 16 19 17 18 26 19 17 23 19 24 10 12 14 17 15 16 17 12 17
[370] 13 13 18 18 14 18 22 20 14 14 11 16 17 16 14 16 23 10 15 20 16 16 14 16 20 12 10 18 16 15 16 15 25 13 20 22 20 18 13 15 24
[411] 14 21 18 14 20 11 13 19 13 13 12 19 23 21 17 25 16 12 15 19 14 15 21 19 20 17 18 15 16 23 17 14 23 21 15 14 19 20 13 16 18
[452] 13 18 16 23 16 14 17 17 16 23 8 18 22 18 15 19 15 16 25 19 13 20 17 22 18 10 20 19 13 19 18 14 15 15 14 11 16 17 17 25 14
[493] 11 12 19 14 14 16 15 14 11 9 15 21 19 25 19 13 17 12 15 22 12 22 15 14 20 19 19 12 20 18 11 18 17 22 13 17 15 18 17 22 16
[534] 15 14 14 29 14 21 17 24 21 14 17 20 19 19 16 17 13 21 15 20 14 12 22 17 21 13 15 21 9 24 15 14 12 17 15 17 15 21 17 24 19
[575] 18 14 16 12 17 11 14 17 20 21 22 17 16 18 24 24 21 17 12 18 18 17 19 22 27 14 16 15 18 24 17 24 18 13 13 12 14 19 11 16 15
[616] 16 23 17 20 9 15 14 17 16 23 15 17 18 18 7 11 27 21 14 20 17 18 19 17 22 18 11 16 14 18 25 17 19 15 22 20 14 18 19 25 25
[657] 16 17 17 22 16 11 23 7 20 18 17 24 17 16 19 14 19 12 17 21 20 16 23 16 14 14 20 22 12 22 19 19 18 23 19 13 22 14 16 24 20
[698] 18 24 29 16 13 11 25 11 16 16 17 26 20 15 14 16 18 13 15 14 13 23 15 17 17 14 15 26 18 13 14 23 22 17 16 18 17 19 16 17 17
[739] 11 16 21 12 14 14 15 17 18 15 19 20 25 16 19 10 27 12 25 14 23 14 22 19 19 13 18 12 18 16 19 21 13 12 16 17 19 19 18 20 17
[780] 20 18 15 16 13 14 9 13 13 20 20 16 19 13 12 13 17 20 14 18 17 24 14 10 16 16 18 16 20 14 13 12 19 18 11 21 23 10 13 17 21
[821] 15 16 9 16 19 15 15 15 20 19 11 19 21 16 13 16 19 22 20 14 15 12 20 21 10 16 17 13 13 15 12 18 19 21 25 12 23 16 19 17 16
[862] 20 18 18 13 22 17 18 13 10 20 16 17 15 24 9 16 17 14 20 21 15 19 7 19 18 21 19 23 18 22 15 15 14 18 20 21 19 23 25 15 11
[903] 19 13 14 16 17 14 15 15 14 11 21 20 17 21 12 21 16 20 17 22 15 20 13 17 17 16 24 19 17 28 22 15 19 16 21 15 22 17 16 13 18
[944] 9 13 15 26 19 20 21 16 23 22 9 14 20 21 23 17 22 22 24 20 18 17 14 17 18 15 20 15 22 20 19 17 20 21 18 22 13 17 23 16 17
[985] 22 16 17 16 15 15 22 21 14 18 24 14 18 12 13 21
,我想计算一个经验p值。 这是想法:
if value_obs > mean(generate_all[1,]):
pvalue=(sum(i > value for i in generate_all[1,])/lenght(generate_all[1,])
else:
pvalue=(sum(i < value for i in generate_all[1,])/lenght(generate_all[1,])
所以因为value_obs = 5
和示例分布的均值为
> mean(generate_all[1,])
[1] 17.2347
我想计算分布中的number of values
的{{1}},然后用above 5
除以得到%
。
有人对R有想法吗?
答案 0 :(得分:1)
我不确定我是否完全理解您的问题,但是如果您要为pvalue
的每一列计算自定义data.frame
,则可以使用R中提供的apply
函数
pvalue <- apply(df, 2, function(x) if(value_obs > mean(x)){
return(sum(x>5)/nrow(df))} else {
return(sum(x<5)/nrow(df))})
在这里,pvalue
是一个向量,其中包含为数据帧的每一列计算的p值。
您应查看Grouping functions (tapply, by, aggregate) and the *apply family以获得详细说明。