2013-04-08 45 views
0

我有一个规范告诉我,我需要变量C是一个元素是字符向量的列表。R列表和向量困境

所以,我想

C = list() 
vector = c("dsdas", "dsadsda", "dsdasdasdasdada") 
C[1] = vector 

然后我得到了warning : number of items to replace is not a multiple of replacement length

但是请注意,只有C包含索引111元这是"dsdas"

然而,这会工作。

C = list() 
vector = list(c("dsdas", "dsadsda", "dsdasdasdasdada")) 
C[1] = vector 

什么是我的选择,如果我的规格说,我需要,而不是一个列表的字符向量,为什么C表现也是这样吗?我认为一个列表可以容纳任何长度的字符向量?

+0

什么是使用这个名单?也许所有你需要知道的是,为了得到一个向量,你需要使用双括号。即不要用'C [1]',而用'C [[1]]'。 – ndoogan 2013-04-08 04:49:33

回答

3

lists可以表现为需要,但你正在由[/[[陷阱捕获(或更具体的[<-/[[<-陷阱。

使用[[提取(和[[<-附加或替换内单个元素列表

[使用提取和[<-追加或列表

内更换 多个元件

在你的情况你想分配给单个元素C[[1]]

所以

C[[1]] <- vector 

如果你想在这种情况下使用[<-我reccommend不这样做分配。

如果你真的觉得你想这样做,你可以通过一个list(如[<期望一个列表,因为C是一个列表)

C[1] <- list(vector)