r包含矩阵的数据帧。data.frame和S4Vector DataFrame的不同行为

r包含矩阵的数据帧。data.frame和S4Vector DataFrame的不同行为,r,matrix,dataframe,s4,R,Matrix,Dataframe,S4,将矩阵作为data.frame或S4Vector DataFrame的一列存在一种棘手的行为,详情如下,谁知道其根本原因?这是否被认为是可以接受的S4向量数据帧的使用,或者是太多的黑客攻击,应该被劝阻。 S4Vector数据帧行为: >库(S4Vectors) >米df$df 具有2行和2列的数据帧 第1列第2列 字符矩阵 1 abc 1 3 2 abc 2 4 传统的data.frame行为: >m df 第1列第2列 1 abc 0 2 abc 0 >df$col_2 df 第1列

将矩阵作为data.frame或S4Vector DataFrame的一列存在一种棘手的行为,详情如下,谁知道其根本原因?这是否被认为是可以接受的S4向量数据帧的使用,或者是太多的黑客攻击,应该被劝阻。

S4Vector数据帧行为:
>库(S4Vectors)
>米df$df
具有2行和2列的数据帧
第1列第2列
字符矩阵
1 abc 1 3
2 abc 2 4


传统的data.frame行为:
>m df
第1列第2列
1 abc 0
2 abc 0
>df$col_2 df
第1列第2.1列第2.2列
1 abc 1 3
2 abc 2 4

当然,这里您也可以选择使用I()函数来更改行为,这在另一篇文章中讨论过,如下面的评论所示

这在某种程度上与以下内容有关,但进一步扩展到S4Vectors。我建议在Bioconductor上询问关于S4Vectors的问题,S4Vectors的开发者更可能看到它;我敢打赌,开发人员会说这是可以接受的。这在某种程度上与以下内容有关,但会进一步扩展到S4Vectors。我建议在Bioconductor上询问关于S4Vectors的问题,S4Vectors的开发者更可能看到它;我打赌开发者会说这是可以接受的。
>library(S4Vectors)
>m <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2) 
>df <- DataFrame(col_1 = "abc", col_2 = rep(0, nrow(m))) 
>df$ <- m 
>df 
DataFrame with 2 rows and 2 columns 
        col_1    col_2 
    character   matrix  
1         abc      1 3 
2         abc      2 4 
>m  <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2) 
>df <- data.frame(col_1 = "abc", col_2 = rep(0, nrow(m))) 
>df 
 col_1 col_2 
1  abc   0 
2  abc   0 

>df$col_2 <- m 
>df 
  col_1 col_2.1 col_2.2 
1   abc       1       3 
2   abc       2       4