複数のサンプル実行(サンプルa、b、c、d)からの吸収スペクトルからなるデータフレームがあります。ここで、Ydataは波長であり、Xdataは吸収である。私は、関心のあるピークから離れた静かな波長範囲での平均吸収を差し引いて、ベースラインの補正された吸収を計算しています。ループなしのデータフレームで、そのレベルの別の因子のサブセットによって因子レベル内のデータを操作する方法
簡略化データフレーム:
DF <- data.frame(
group = rep(c("a", "b", "c", "d"),each=10),
Ydata = rep(1:10, times = 4),
Xdata = c(seq(1,10,1),seq(5,50,5),seq(20,11,-1),seq(0.3,3,0.3)),
abscorr = NA
)
Iは、実行中のサブセット化波長範囲の平均値を減算することによって実行する各サンプルを修正する必要があります。私は、このようにそれをやってきた:
for (i in 1:length(levels(DF$group))){
sub1 <- subset(DF, group == levels(DF$group)[i], select = c(group, Ydata,
Xdata));
sub2 <- subset(sub1, Ydata > 4 & Ydata < 8, select = c(group, Ydata,
Xdata));
sub1$abscorr <- sub1$Xdata - mean(sub2$Xdata);
DF <- rbind(sub1, DF);
}
とすべての「NAの
DF <- na.omit(DF)
をアップし、その後整頓以上行わやり方は明らかにループを使用して不格好です。大規模なデータセットに対してこの作業を進めるには良い方法がありますか?おそらくdplyr?
MTに感謝します。治療をします。私は、dplyrパッケージがどのように働いていたかを頭に浮かべることができませんでした。 – Jordan