在R中子集S4对象

时间:2015-07-06 22:05:44

标签: r subset s4

我有一个带有三个插槽的S4对象'DATA' - 结构看起来像这样(对不起,我不知道如何创建一个例子,所以这是我正在使用的简化结构)

---坐标:@coo(例如'Name_A')是一个2x20矩阵,其中有6个带名字的矩阵

---姓名:@names Name_A Name_B Name_C Name_D Name_E Name_F,每个名字都有两个因素之一

---因素:@fac Factor_A Factor_B

如何在@fac = Factor_A中对@coo数据进行子集化(选择)?我已尝试使用带有getElement的[]表示法的数据帧类型选择组合的数量,但这显然是不正确的。感谢。

EDIT 可重复的例子 - 我知道这是一种可怕的做法....

library(Momocs)

您读入的输入数据文件如下所示(称为“test.chc”,其中这是另一个应用程序的输出)

 [1] "sampleA 322 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"
 [2] "sampleB 231 5 4 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"    
 [3] "sampleC 489 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"   
 [4] "sampleD 323 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"    
 [5] "sampleE 381 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"    
 [6] "sampleF 342 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"    
 [7] "sampleG 327 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"    
 [8] "sampleH 336 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"    
 [9] "sampleI 147 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"
[10] "sampleJ 654 6 5 4 4 4 4 4 6 5 4 4 4 6 0 0 0 6 6 4 6 5 4 4 4 4 3 2 4 3 2 4 4 -1"   

grps<- data.frame(Groups=(rep(letters[1:2],5)))

c.S4obj <-chc2Coo("test.chc")

c.S4obj@fac <-grps

str(c.S4obj)

那么,问题是,如何选择特定组(a或b)的数据并返回S4类对象?

1 个答案:

答案 0 :(得分:0)

Momocs现在使用S3类,检索数据要容易得多。如果您仍在使用形态测量法,那么值得查看1.0.0 version on CRANits vignette