我有一个很大的嵌套列表,它包含其他列表,这些列表包含tibbles。在清理元素后,我留下了很多空的tibbles和列表。
现在我想把我的结果放到一个单独的Dataframe中,但是我收到错误消息:
Argument x must have names.
我知道空元素会搞砸我绑定行的尝试,但我找不到删除所有空tibble的方法。
这是我的数据结构:
a<-tibble (1:7,
letters[7:1])
b<-tibble (1:7)
c<-tibble(.rows=2)
riddle<-list(list(a,b,c), list(list(a,b,c)), list(c),c)
bind_rows(riddle)
请注意,这只是一个最小化的版本。所以任何手动编辑或删除元素不会对我的原始数据工作。
任何有咕噜声的解决方案都会特别有用!:)
提前感谢您的帮助!!
编辑:
@akrun的答案解决了上面的问题,但我发现我的数据的主要问题是同名变量的结构,一个通用类型的字符应该可以工作。
我在一个稍有改动的例子中重现了这个错误:
一个二个一个一个
谢谢你的建议
编辑:
另一个必要的步骤是实现make.unique ()
,因为我的原始数据包含重复的列名,这不能与row.bind合并,下面的@akrun对此进行了解释和回答。
1条答案
按热度按时间mw3dktmi1#
如果我们想要获得单个数据集,请使用
map
循环list
,然后使用bind_rows
如果要移除0行或0列的数据集,请使用递归函数检查
all
dim
属性的值是否大于0一个二个一个一个
对于不同类型的更新版本,可以转换为单一类型,绑定后再使用
type.convert
如果有重复的列名,我们可以使用
make.unique
使其唯一,因为data.frame
需要唯一的列名。