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))