R:结果向量未出现在 For 循环中
R: Result vector is not showing up in 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,])))
}
问题是,结果 zvalues numeric 是空的。我不知道为什么。我可以 运行 对单行使用相同的功能,而且效果很好。例如:
s = unname(geneexpx[4]-rowMeans(geneexpy[4,])) / rowSds(geneexpy[4,])
s
[1] -2.431277e+156
如果您对可能出现的问题有任何想法,请告诉我。
编辑:
geneexpx 负责人:
c(1.501400411, -0.818584726, -0.455614921, -0.138022494, -1.213938495, -0.536465133)
geneexpy很大,但是每一列都和上面的geneexpx差不多
你这里发生了几件事。首先,您需要将 zvalues
定义为向量。其次,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
好的,所以我是 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,])))
}
问题是,结果 zvalues numeric 是空的。我不知道为什么。我可以 运行 对单行使用相同的功能,而且效果很好。例如:
s = unname(geneexpx[4]-rowMeans(geneexpy[4,])) / rowSds(geneexpy[4,])
s
[1] -2.431277e+156
如果您对可能出现的问题有任何想法,请告诉我。
编辑:
geneexpx 负责人:
c(1.501400411, -0.818584726, -0.455614921, -0.138022494, -1.213938495, -0.536465133)
geneexpy很大,但是每一列都和上面的geneexpx差不多
你这里发生了几件事。首先,您需要将 zvalues
定义为向量。其次,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