在R中创建二维对象表

时间:2018-07-29 15:53:18

标签: r data-structures

我有一个用户定义的类,如下所示:

Cell<-setRefClass("Cell",
                    fields = list(p="vector", done="logical")
  )

我希望创建一个表格数据结构,在其中可以有mxn个元素,每个元素都具有我的Cell类的实例。

我尝试过的一件事是:

mytable<-array(,dim = c(3,4))

然后我将该数组的一个单元格设置为我的类的实例:

mytable[[1,1]]<-Cell$new(p=(1:5), done=FALSE)

我得到:

mytable [[1,1]]中的错误<-Cell $ new(p =(1:5),done = FALSE):
提供的元素多于要替换的元素

不确定数组是否最适合于这种情况,我曾尝试使用矩阵和列表,但似乎无法实现我在这里试图做的事情。

1 个答案:

答案 0 :(得分:0)

S4对象可以存储在列表中,因此请尝试此操作。

for (;; cmp->file[0].buffered = cmp->file[1].buffered = 0)
{
    /* Read a buffer's worth from both files.  */
    for (f = 0; f < 2; f++)
        if (0 <= cmp->file[f].desc)
            file_block_read (&cmp->file[f],
                buffer_size - cmp->file[f].buffered);

    /* If the buffers differ, the files differ.  */
    if (cmp->file[0].buffered != cmp->file[1].buffered
            || memcmp (cmp->file[0].buffer,
                    cmp->file[1].buffer,
                    cmp->file[0].buffered))
    {
        changes = 1;
        break;
    }

    /* If we reach end of file, the files are the same.  */
    if (cmp->file[0].buffered != buffer_size)
    {
        changes = 0;
        break;
    }
}

如果确实需要二维结构,您还可以使用一个列表来存储Cell对象,并维护一个数组/矩阵作为对此列表的索引。