根据第二个数据集中的平均值/S.e 值规范化第一个数据集的值



我有两个数据集。第一个数据集包括观测值,第二个数据集包括平均值和 s.d 的值。我正在寻找一种简短的方法(循环函数(来根据第二个数据集的平均值和方差值对第一个数据集中每行频率的标准正态进行归一化。我的意思是,我想在第一个数据集中添加四列,第一列是基于第二个数据集第一行的平均值/S.e 的频率的正常值,第二列是基于第二个数据集第二行的平均值/S.e 的频率的正常值,依此类推。

Subject <- seq(1, 13, 1)
Frequency <- c(7,79,509,2240,2341,623,476,228,168,140,114,64,22)
A<-data.frame(Subject,Frequency)
Mean<-c(11,12,13,14)
S.e<-c(1.1,1.2,1.3,1.4)
B<-data.frame(Mean,S.e)

我认为这可以实现您正在寻找的内容:

colA<-ncol(A)
for(i in 1:nrow(B)){
  A[,colA+i] <- (A[,2]-B[i,1])/B[i,2]
  names(A)[colA+i] <- paste("Prob",i,sep = "")
}

试试这个:

for (i in 1:nrow(B)) A <- cbind(A,(A[,2]-rep(B[i,1],nrow(A)))/rep(B[i,2],nrow(A)))
names(A) <- c("Subject","Frequency","Norm1","Norm2","Norm3","Norm4")

最新更新