如何提取符合特定标准的值

时间:2017-10-06 18:04:38

标签: r extract criteria

如果您有数据框,例如:

 D1 <-(DW$Ag, DW$Al, DW$As, DW$Ba)

*元素浓度

你运行shapiro.test 结果是,例如:

             DW.Ag      DW.Al        DW.As     DW.Ba      
statistic 0.9030996  0.5204454    0.9761229 0.9286749  
p.value   0.01000898 8.873327e-09 0.7157865 0.04528581 

你需要提取所有等于或低于0.5的p值,你是怎么做到的? 我试过了:

stat[stat$p.value <= 0.5, ]
stat[which(lres1$p.value <= 0.5), ]

(注意:让我们说结果的名称是包含数据的STAT /列表..

提前致谢

1 个答案:

答案 0 :(得分:0)

快速阅读shapiro测试的帮助页面表明返回的对象是一个包含多个对象的列表项,包括p值。

str(shapiro.test(rnorm(100, mean = 5, sd = 3)))

因此,如果您要对多列数字数据运行shapiro测试,例如:

df <- data.frame(x1 = rnorm(100, mean = 5, sd = 3), x2 = rnorm(100, mean = 5, sd = 3), x3 = rnorm(100, mean = 5, sd = 3), x4 = rnorm(100, mean = 5, sd = 3))
list <- lapply(df, shapiro.test)

使用str()检查结果。您可以在此样本数据上找到4次测试运行的p值。

str

使用一些循环代码将它们解压缩出来,你很高兴

x <- unlist(lapply(list, `[`, 'p.value'))
x[x <= 0.5]

希望有所帮助!