R 用不等列绑定列表

R 用不等列绑定列表,r,R,在对绑定数据列表做了无数贡献之后,我不好意思问这个问题。然而,我自己似乎无法找到正确的解决方案 我的列表如下所示: [[1]] 223586 <NA> "James J." "Adress xxxxx" [[2]] 12693738 <NA> <NA> "Oliver M." "Address yyyyy" "Town xxxxx"

在对绑定数据列表做了无数贡献之后,我不好意思问这个问题。然而,我自己似乎无法找到正确的解决方案

我的列表如下所示:

[[1]]
          223586            <NA> 
       "James J." "Adress xxxxx" 

[[2]]
         12693738           <NA>         <NA> 
     "Oliver M." "Address yyyyy" "Town xxxxx"
我将在最后一列(长度2)中填入姓名
(第一列条目)
James J。在本例中:

  do.call(rbind.data.frame, list)

             NA         NA        NA  
         James J. Adress xxxxx   James J.
         Oliver M. Address yyyyy town xxxx 
编辑:此数据没有任何特别之处。更多的是关于如何绑定列表中长度不等的数据。有两个或三个字符串的长度


因此,我想将缺少的
length 2
替换为
NA
,以便可以绑定列表。

您的问题的答案可以在右侧找到。如果要更改列表元素,使其长度相同,可以执行以下操作:

lst <- list(a = 1:3, b = 1:4, name = c("A", "X"))  #a list for the example

n <- max(unlist(lapply(lst, length)))              #check maximum length

lstnew <- lapply(lst, function(x) {ans <- rep(NA, length=n); 
                                   ans[1:length(x)]<- x; 
                                   return(ans)})   #Add NA for elements shorter than n
或者如果您需要data.frame

as.data.frame(sapply(lst,'[',1:n))


那么,完整列表中有多少项?我对你列表中的数据有点困惑。你能详细介绍一下这个名单是如何形成的吗?此外,是否总是缺少Town字段?请发布来自
dput(list)
的输出,以便我们可以轻松地重建您的数据。@Eddie:在dataframe中,可以很容易地以其他名称作为
colname(datafame)放置
sapply(lst,'[',1:n)         #to return a matrix
as.data.frame(sapply(lst,'[',1:n))
as.data.frame(lapply(lst,'[',1:n))