基于第二数据集中的mean / S.e的值来标准化第一数据集的值

时间:2017-03-24 10:47:42

标签: r

我有两个数据集。第一组数据包括观察结果,第二组数据包括平均值和标准差。我正在寻找一种简短的方法(循环函数),以便根据第二个数据集的均值和方差值,在第一个数据集中对每行频率进行标准化标准正常。我的意思是,我想在第一个数据集中添加四列,第一列是基于第二个数据集第一行的平均值/ Se的频率的正常值,第二列是频率的正常值基于第二个数据集第二行的Mean / Se,依此类推。

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)

2 个答案:

答案 0 :(得分:1)

我认为这可以实现您所寻找的目标:

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 = "")
}

答案 1 :(得分:0)

试试这个:

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")