R:结果向量没有显示在For循环中

R:结果向量没有显示在For循环中,r,for-loop,R,For Loop,好的,我是R新手,但到目前为止我已经取得了一些相当好的成功-我正在两个数据帧的对应行之间运行一个统计测试,一个数据帧只是一个值字符串,因为它只有一列。我希望使用以下For循环: zvalues = NULL zvalues = numeric(0) for(i in seq(nrow(geneexpx))){ zvalues[i] <- try(unname((geneexpx[i]-rowMeans(geneexpy[i,])) / rowSds(geneexpy[i,]))) }

好的,我是R新手,但到目前为止我已经取得了一些相当好的成功-我正在两个数据帧的对应行之间运行一个统计测试,一个数据帧只是一个值字符串,因为它只有一列。我希望使用以下For循环:

zvalues = NULL
zvalues = numeric(0)
for(i in seq(nrow(geneexpx))){
  zvalues[i] <- try(unname((geneexpx[i]-rowMeans(geneexpy[i,])) / rowSds(geneexpy[i,])))
}
如果您对可能出现的问题有任何想法,请告诉我

编辑: geneexpx负责人:

c(1.501400411, -0.818584726, -0.455614921, -0.138022494, -1.213938495, -0.536465133)  

geneexpy非常大,但每个列都与上面的geneexpx相似。

这里有一些事情要做。首先,需要将zvalue定义为向量。第二,rowMeans和rowSds是矩阵上的运算,而不是向量。通过选择greneecxpy[i,]可以选择矩阵的第i行,这将是一个向量

你没有提供geneexpy,所以我编了一个:

zvalues = rep(NA, length(geneexpx))
geneexpy <- matrix(runif(60), nrow = 6)
for(i in seq_along(geneexpx)){
  zvalues[i] <- (geneexpx[i] - mean(geneexpy[i,])) / sd(geneexpy[i,])
}

> zvalues
[1]  3.772994 -4.283168 -2.812811 -2.074548 -5.649359 -4.323920

您可能可以将整个操作矢量化。请将dputhEADGenexpx添加到帖子中,并显示所需的result@RichardScriven我希望补充的信息有帮助。至于期望的结果,它将只是一个向量,其中观测数行与原始计算中使用的行相匹配。我希望用简单的英语为每一行计算的基本计算是:Geneexpxrow1-平均值GeneExpyrow1/标准偏差GeneExpyrow1
zvalues = rep(NA, length(geneexpx))
geneexpy <- matrix(runif(60), nrow = 6)
for(i in seq_along(geneexpx)){
  zvalues[i] <- (geneexpx[i] - mean(geneexpy[i,])) / sd(geneexpy[i,])
}

> zvalues
[1]  3.772994 -4.283168 -2.812811 -2.074548 -5.649359 -4.323920