如何将矩阵封装到R中的数据帧中?

如何将矩阵封装到R中的数据帧中?,r,dataframe,R,Dataframe,我试图将数据放入数据框中: > mymatrix <- matrix(seq(1, 12), ncol=4) > mymatrix [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 > myresults <- c(TRUE, FALSE, TRUE) 为什么df$mymatrixNULL 为什么mymatrix的列

我试图将数据放入数据框中:

> mymatrix <- matrix(seq(1, 12), ncol=4)
> mymatrix
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> myresults <- c(TRUE, FALSE, TRUE)
  • 为什么df$mymatrix
    NULL
  • 为什么mymatrix的列“泄漏”到
    df$
    命名空间中 注意:我正在尝试创建类似于纱线包的数据,您可以尝试

      df <- data.frame(mymatrix=I(mymatrix), myresults)
      df$mymatrix
      #     [,1] [,2] [,3] [,4]
      #[1,]    1    4    7   10
      #[2,]    2    5    8   11
      #[3,]    3    6    9   12
    
      str(df)
      #'data.frame':    3 obs. of  2 variables:
      #$ mymatrix : 'AsIs' int [1:3, 1:4]  1  2  3  4  5  6  7  8  9 10 ...
      #$ myresults: logi  TRUE FALSE TRUE
    
     lm(mymatrix ~ myresults, data=df)
    
     #Call:
     #lm(formula = mymatrix ~ myresults, data = df)
    
     #Coefficients:
     #               [,1]       [,2]       [,3]       [,4]     
     #(Intercept)    2.000e+00  5.000e+00  8.000e+00  1.100e+01
     #myresultsTRUE  2.040e-16  8.158e-16  8.158e-16  2.448e-15
    

    @akrun我只想做我的模型
    > df$mymatrix
    NULL
    
    > df$
    df$X1         df$X2         df$X3         df$X4         df$myresults
    
      df <- data.frame(mymatrix=I(mymatrix), myresults)
      df$mymatrix
      #     [,1] [,2] [,3] [,4]
      #[1,]    1    4    7   10
      #[2,]    2    5    8   11
      #[3,]    3    6    9   12
    
      str(df)
      #'data.frame':    3 obs. of  2 variables:
      #$ mymatrix : 'AsIs' int [1:3, 1:4]  1  2  3  4  5  6  7  8  9 10 ...
      #$ myresults: logi  TRUE FALSE TRUE
    
     lm(mymatrix ~ myresults, data=df)
    
     #Call:
     #lm(formula = mymatrix ~ myresults, data = df)
    
     #Coefficients:
     #               [,1]       [,2]       [,3]       [,4]     
     #(Intercept)    2.000e+00  5.000e+00  8.000e+00  1.100e+01
     #myresultsTRUE  2.040e-16  8.158e-16  8.158e-16  2.448e-15
    
     lm(mymatrix~myresults)
    
     #Call:
     #lm(formula = mymatrix ~ myresults)
    
     #Coefficients:
     #              [,1]       [,2]       [,3]       [,4]     
     #(Intercept)    2.000e+00  5.000e+00  8.000e+00  1.100e+01
     #myresultsTRUE  2.040e-16  8.158e-16  8.158e-16  2.448e-15