循环遍历R中S4对象中的列

循环遍历R中S4对象中的列,r,loops,s4,R,Loops,S4,我正在尝试使用包执行关联 我有一个名为“plink”的snp矩阵,其中包含我的基因型数据(如 $genypes、$map、$fam)和plink$genype的列表有:SNP名称作为列名(2个SNP),主题标识符作为行名: plink$genotype SnpMatrix with 6 rows and 2 columns Row names: 1 ... 6 Col names: 203 204 通过复制以下ped和map文件并将其分别保存为“plink.ped”和“plink.m

我正在尝试使用包执行关联

我有一个名为“plink”的snp矩阵,其中包含我的基因型数据(如 $genypes、$map、$fam)和plink$genype的列表有:SNP名称作为列名(2个SNP),主题标识符作为行名:

plink$genotype
SnpMatrix with  6 rows and  2 columns
Row names:  1 ... 6 
Col names:  203 204
通过复制以下ped和map文件并将其分别保存为“plink.ped”和“plink.map”,可以复制plink数据集:

plink.ped:

1 1 0 0 1 -9 A A G G
2 2 0 0 2 -9 G A G G
3 3 0 0 1 -9 A A G G
4 4 0 0 1 -9 A A G G
5 5 0 0 1 -9 A A G G
6 6 0 0 2 -9 G A G G

plink.map:

1 203 0 792429
2 204 0 819185
然后以这种方式使用plink:

./plink --file plink --make-bed

@----------------------------------------------------------@
|        PLINK!       |     v1.07      |   10/Aug/2009     |
|----------------------------------------------------------|
|  (C) 2009 Shaun Purcell, GNU General Public License, v2  |
|----------------------------------------------------------|
|  For documentation, citation & bug-report instructions:  |
|        http://pngu.mgh.harvard.edu/purcell/plink/        |
@----------------------------------------------------------@

Web-based version check ( --noweb to skip )
Recent cached web-check found...Problem connecting to web

Writing this text to log file [ plink.log ]
Analysis started: Tue Nov 29 18:08:18 2011

Options in effect:
--file /ugi/home/claudiagiambartolomei/Desktop/plink
--make-bed

 2 (of 2) markers to be included from [ /ugi/home/claudiagiambartolomei/Desktop   /plink.map ]
 6 individuals read from [ /ugi/home/claudiagiambartolomei/Desktop/plink.ped ] 
 0 individuals with nonmissing phenotypes
Assuming a disease phenotype (1=unaff, 2=aff, 0=miss)
Missing phenotype value is also -9
0 cases, 0 controls and 6 missing
4 males, 2 females, and 0 of unspecified sex
Before frequency and genotyping pruning, there are 2 SNPs
6 founders and 0 non-founders found
Total genotyping rate in remaining individuals is 1
0 SNPs failed missingness test ( GENO > 1 )
0 SNPs failed frequency test ( MAF < 0 )
After frequency and genotyping pruning, there are 2 SNPs
After filtering, 0 cases, 0 controls and 6 missing
After filtering, 4 males, 2 females, and 0 of unspecified sex
Writing pedigree information to [ plink.fam ] 
Writing map (extended format) information to [ plink.bim ] 
Writing genotype bitfile to [ plink.bed ] 
Using (default) SNP-major mode

Analysis finished: Tue Nov 29 18:08:18 2011
评估中出错(expr、envir、enclose):未找到对象“bmi”

一如既往地感谢您的帮助!
-snpStats的作者是大卫·克莱顿。尽管软件包说明中列出的网站是错误的,但他仍在该域,可以使用谷歌的高级搜索功能,通过以下规范搜索文档:

snpStats site:https://www-gene.cimr.cam.ac.uk/staff/clayton/
访问困难的可能原因是这是一个S4包,访问方法不同。S4对象通常具有显示方法,而不是打印方法。包中有一个小插曲:,他的整个短期课程的目录已开放供访问:

很明显,从snp.rhs.tests返回的对象可以通过“[”访问,使用序列号或名称,如第7页所示。您可以获得名称:

# Using the example on the help(snp.rhs.tests) page:

> names(slt3)
 [1] "173760" "173761" "173762" "173767" "173769" "173770" "173772" "173774"
 [9] "173775" "173776"
您可能调用的列可能是“插槽”


但是没有
[i,j]
方法来循环这些插槽名称。您应该转到帮助页面
?“GlmTests类”
其中列出了为该S4类定义的方法。

snpStats的作者是David Clayton。尽管软件包说明中列出的网站是错误的,但他仍在该领域,可以使用谷歌的高级搜索功能,通过以下规范搜索文档:

snpStats site:https://www-gene.cimr.cam.ac.uk/staff/clayton/
访问困难的可能原因是这是一个S4程序包,访问方法不同。S4对象通常具有show方法,而不是print方法。程序包上有一个小插曲,如下所示:,并且他的整个短期课程的目录开放供访问:

很明显,从snp.rhs.tests返回的对象可以通过“[”访问,使用序列号或名称,如第7页所示。您可以获得名称:

# Using the example on the help(snp.rhs.tests) page:

> names(slt3)
 [1] "173760" "173761" "173762" "173767" "173769" "173770" "173772" "173774"
 [9] "173775" "173776"
您可能调用的列可能是“插槽”


但是没有
[i,j]
方法来循环这些插槽名称。您应该转到帮助页面
?“GlmTests类”
,该页面列出了为该S4类定义的方法。

完成初始海报所需操作的正确方法是:

for (i in ncol(pheno)) { 
  association <- snp.rhs.tests(pheno[,i], family="gaussian", snp.data=plink$genotype) 
}

完成初始海报要求的正确方法是:

for (i in ncol(pheno)) { 
  association <- snp.rhs.tests(pheno[,i], family="gaussian", snp.data=plink$genotype) 
}

文档中说
data=parent.frame()
snp.rhs.tests()
中的默认值


apply()
代码中存在明显错误-请不要执行
x文档中说
data=parent.frame()
snp.rhs.tests()中的默认值


apply()
code中有一个明显的错误-请不要
x您有一个示例数据集供我们使用吗?您不能在矩阵上使用
$
,请使用
snp.matrix[,“genetic”]
对于混淆,我很抱歉,我想让我的问题更清楚,如果仍然混淆,我将尝试添加在plink中生成的SNP矩阵数据…@user971102:您仍然缺少
plink
变量,因此示例尚不可复制。请提供它。如果您只是发布dput(plink),会更容易,而不是建议我们安装另一个(非R)程序。您有示例数据集供我们使用吗?您不能在矩阵上使用
$
,请使用
snp.matrix[,“genetic”]
对于混淆,我很抱歉,我想让我的问题更清楚,如果仍然混淆,我将尝试添加在plink中生成的SNP矩阵数据…@user971102:您仍然缺少
plink
变量,因此示例尚不可复制。请提供它。如果您只是发布dput(plink),会更容易,而不是建议我们安装另一个(非R)程序。
> getSlots(class(slt3))
  snp.names   var.names       chisq          df           N 
      "ANY" "character"   "numeric"   "integer"   "integer" 
> str(getSlots(class(slt3)))
 Named chr [1:5] "ANY" "character" "numeric" "integer" "integer"
 - attr(*, "names")= chr [1:5] "snp.names" "var.names" "chisq" "df" ...
> names(getSlots(class(slt3)))
[1] "snp.names" "var.names" "chisq"     "df"        "N"        
for (i in ncol(pheno)) { 
  association <- snp.rhs.tests(pheno[,i], family="gaussian", snp.data=plink$genotype) 
}
for (i in ncol(pheno)) {
  cc <-  pheno[,i]
  association <- snp.rhs.tests(cc, family="gaussian", snp.data=plink$genotype) 
}
rhs <- function(x) { 
y<- snp.rhs.tests(x, family="gaussian", snp.data=plink$genotype) 
} 
res_ <- apply(pheno,2,rhs)