Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R lm()用于单行,但不用于for循环_R_Lm_P Value - Fatal编程技术网

R lm()用于单行,但不用于for循环

R lm()用于单行,但不用于for循环,r,lm,p-value,R,Lm,P Value,我试图在基因表达式值矩阵上使用for循环运行lm()。数据集分为人类和黑猩猩,我正在比较它们的相对表达。可以使用下载原始数据集。以下是我在本文中使用的前6行 >matrix Human_AF_8 Human_EU_11 Human_EU_4 Chimpanzee_4 Chimpanzee_6 Chimpanzee_5 ENSG00000000003 0.1394345 -0.27961627 -0.6147440 -0.1857581 0.199

我试图在基因表达式值矩阵上使用for循环运行lm()。数据集分为人类和黑猩猩,我正在比较它们的相对表达。可以使用下载原始数据集。以下是我在本文中使用的前6行

>matrix

                Human_AF_8 Human_EU_11 Human_EU_4 Chimpanzee_4 Chimpanzee_6 Chimpanzee_5
ENSG00000000003  0.1394345 -0.27961627 -0.6147440   -0.1857581   0.19963078    0.4290812
ENSG00000000005 -0.8167632 -0.81676316  0.5223724    2.6947268  -0.59724108   -0.7190366
ENSG00000000419  0.4391277  2.83122842 -0.2066077    0.7903616  -0.26222373   -0.5113423
ENSG00000000457 -1.4025076 -0.07813095 -0.6768202    1.9199726  -0.18687230    1.4537927
ENSG00000000460 -0.8636231 -0.02775471 -1.0507558    0.9997930  -0.01413707   -0.2064266
ENSG00000000938  1.7407105  0.51450595 -0.8887369   -1.1291976  -0.29129441   -0.4344628
在读取数据帧并将其转换为矩阵(第一列成为行名称)之后,我尝试拟合lm()函数并保存其统计摘要以计算p值

测试一行工作正常

# Making reference
species <- c(rep("human",3), rep("chimp",3))

# Testing for one row works fine
species.lm.sum <- summary(lm(matrix[1, ] ~ species))

# P value
pval <- pf(species.lm.sum$fstatistic[1],
           species.lm.sum$fstatistic[2],
           species.lm.sum$fstatistic[3], 
           lower.tail = FALSE)
# Printing
pval
p.S.如果尝试使用,请按以下方式更改引用

species <- c(rep("human", 14), rep("chimp", 6))

物种无法重现您的问题。我使用的是R版本4.0.3

tmp <- tempfile()
download.file("ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE45nnn/GSE45263/suppl/GSE45263_gene.expression.measurements.txt.gz", tmp)
data <- as.matrix(read.table(gzfile(tmp), header=TRUE, row.names=1))
unlink(tmp)

species <- c(rep("human", 14), rep("chimp", 6))
species.lm.sum <- summary(lm(data[1, ] ~ species))
pval <- pf(species.lm.sum$fstatistic[1],
           species.lm.sum$fstatistic[2],
           species.lm.sum$fstatistic[3], 
           lower.tail=FALSE)
pval
#     value 
# 0.7540272 

p.values <- c()

for (i in 1:nrow(data)) {
  stat <- summary(lm(data[i, ] ~ species))
  pval <- pf(stat$fstatistic[1],
             stat$fstatistic[2],
             stat$fstatistic[3], 
             lower.tail=FALSE)
  p.values <- append(p.values, pval) 
}
head(p.values)
#      value      value      value      value      value      value 
# 0.75402720 0.91408640 0.22396503 0.01239904 0.83018858 0.14561322 

tmp谢谢你的回答!我使用的是相同的版本。但我是在R减价块中运行代码的。你能试试这个吗?我已在原始帖子中添加了区块。@Priyanshrivastava工作正常,只是将我答案的全部代码粘贴到区块中。也许是包裹冲突?尝试一个新的R会话,不需要任何
库调用。谢谢,在我重新启动会话后它就可以工作了。的确,这是一场图书馆冲突。@Priyanshrivastava太好了,恭喜,很高兴它起作用了。
species <- c(rep("human", 14), rep("chimp", 6))
```{r, "LM"}
p.values <- c()

for (i in 1:nrow(data)) {
  stat <- summary(lm(data[i, ] ~ species))
  pval <- pf(stat$fstatistic[1],
             stat$fstatistic[2],
             stat$fstatistic[3], 
             lower.tail=FALSE)
  p.values <- append(p.values, pval) 
}
head(p.values)
```
tmp <- tempfile()
download.file("ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE45nnn/GSE45263/suppl/GSE45263_gene.expression.measurements.txt.gz", tmp)
data <- as.matrix(read.table(gzfile(tmp), header=TRUE, row.names=1))
unlink(tmp)

species <- c(rep("human", 14), rep("chimp", 6))
species.lm.sum <- summary(lm(data[1, ] ~ species))
pval <- pf(species.lm.sum$fstatistic[1],
           species.lm.sum$fstatistic[2],
           species.lm.sum$fstatistic[3], 
           lower.tail=FALSE)
pval
#     value 
# 0.7540272 

p.values <- c()

for (i in 1:nrow(data)) {
  stat <- summary(lm(data[i, ] ~ species))
  pval <- pf(stat$fstatistic[1],
             stat$fstatistic[2],
             stat$fstatistic[3], 
             lower.tail=FALSE)
  p.values <- append(p.values, pval) 
}
head(p.values)
#      value      value      value      value      value      value 
# 0.75402720 0.91408640 0.22396503 0.01239904 0.83018858 0.14561322