我有一个数据框,它由每个观察的变量列组成,这些列是行。我需要修剪这些数据以删除不需要的观察结果。
我通常如何做到这一点 -
trimmed_stats <- ddply(.data = data, .(pos), subset,
!AvgGFP > 100 &
!AvgRFP > 60 &
!Area < 220 &
!Area > 2000 &
!DeviationsRFP > 20 &
!DeviationGFP > 20)
Run Code Online (Sandbox Code Playgroud)
...基本上删除不符合特定标准的数据。
但是,当我查看多个数据集时,这些特定数字会因数据集而异。
我想要做的是使用与平均值的标准偏差执行“修剪”。
例如,让我们采用一个简单的数据框,每个观察值都有一个变量 -
p <- data.frame(obs = c(1:1000), var1 = rnorm(1000, 0 , 5))
sd(p[,2])
[1] 4.91213
Run Code Online (Sandbox Code Playgroud)
所以 1 个标准差是 4.91213,如何删除 var1 不在均值 1 个标准差范围内的所有行?
该subset函数确实允许您使用计算值,因此您可以执行以下操作:
trimmed_stats <- ddply(.data = data, .(pos), subset,
abs(AvgGFP - mean(AvgGFP)) < sd(AvgGFP) &
...)
Run Code Online (Sandbox Code Playgroud)
不要误会:在 内ddply,这些mean(AvgGFP)和sd(AvgGFP)确实是为每个 计算的pos。
| 归档时间: |
|
| 查看次数: |
4217 次 |
| 最近记录: |