R 将向量保存到矩阵/数据帧值中

R 将向量保存到矩阵/数据帧值中,r,vector,matrix,R,Vector,Matrix,在R中,有没有一种方法可以将整个向量保存为矩阵或数据帧的一个值,而不必首先将其组合为单个值 例如,如果我有一个向量 pk<-c(0.021477,0.021114,0.022794,0.014858,0.009690,0.003255,0.002715) pk你当然可以在矩阵的每个元素中放置一个向量。试试像这样的东西 tst<-matrix(data=list(),nrow=4,ncol=4) tst[[1,1]] <- pk #note double square brac

在R中,有没有一种方法可以将整个向量保存为矩阵或数据帧的一个值,而不必首先将其组合为单个值

例如,如果我有一个向量

pk<-c(0.021477,0.021114,0.022794,0.014858,0.009690,0.003255,0.002715)

pk你当然可以在矩阵的每个元素中放置一个向量。试试像这样的东西

tst<-matrix(data=list(),nrow=4,ncol=4)
tst[[1,1]] <- pk #note double square brackets needed for assignment
但是元素可以用明显的方式提取

> tst[1,1]
[[1]]
[1] 0.021477 0.021114 0.022794 0.014858 0.009690 0.003255 0.002715
#note list

> tst[[1,1]]
[1] 0.021477 0.021114 0.022794 0.014858 0.009690 0.003255 0.002715
#original vector

如果向量的长度不同,我可以看到两种处理方法。要么将长度四舍五入到最大值,然后将其放入数组中

tst<- array(data=NA, dim=c(4,4,maxLen))
tst[1,1,1:length(pk)] <- pk
tst您还可以使用“原样”
I
函数,并将
pk
制作为一个1元素列表(包含向量):

pk
tst
     [,1]      [,2] [,3] [,4]
[1,] Integer,5 NULL NULL NULL
[2,] NULL      NULL NULL NULL
[3,] NULL      NULL NULL NULL
[4,] NULL      NULL NULL NULL
> tst[1,1]
[[1]]
[1] 0.021477 0.021114 0.022794 0.014858 0.009690 0.003255 0.002715
#note list

> tst[[1,1]]
[1] 0.021477 0.021114 0.022794 0.014858 0.009690 0.003255 0.002715
#original vector
tst<- array(data=NA, dim=c(4,4,maxLen))
tst[1,1,1:length(pk)] <- pk
pk <- c(0.021477,0.021114,0.022794,0.014858,0.009690,0.003255,0.002715)
dat <- data.frame(a <- I(list(pk)))
str(dat)
## 'data.frame':    1 obs. of  1 variable:
##  $ a....I.list.pk..:List of 1
##   ..$ : num  0.02148 0.02111 0.02279 0.01486 0.00969 ...
##   ..- attr(*, "class")= chr "AsIs"

dat[1,1]
## [[1]]
## [1] 0.021477 0.021114 0.022794 0.014858 0.009690 0.003255 0.002715