我有一个这样的清单:
lst <-
list(structure(c("1", "[19]"), .Dim = 1:2), structure("1", .Dim = c(1L,
1L)), structure(c("1", "[41]"), .Dim = 1:2), structure(c("1",
"[55]"), .Dim = 1:2), structure(c("1", "[56]"), .Dim = 1:2),
structure(c("1", "[84]"), .Dim = 1:2))
如何将其转换为tibble
以便:
rslt <-
tibble(batch=c(1,1,1,1,1,1), id=c("[19]","","[41]","[55]","[56]","[84]"))
# A tibble: 6 x 2
batch id
<dbl> <chr>
1 1 [19]
2 1
3 1 [41]
4 1 [55]
5 1 [56]
6 1 [84]
答案 0 :(得分:3)
我们遍历 @Component({
selector: 'hotel',
templateUrl: './hotel.component.html'
})
export class HotelComponent implements OnInit {
data: any;
constructor(){
this.getData((data) => {
this.data = data;
});
}
ngOnInit() { }
ngAfterViewInit() {
$('td').on('click', function() {
console.log("alooo");
var $this = $(this);
var $input = $('<input>', {
value: $this.text(),
type: 'text',
blur: function() {
$this.text(this.value);
},
keyup: function(e) {
if (e.which === 13) $input.blur();
}
}).appendTo( $this.empty() ).focus();
});
}
public getData(data) {
const req = new XMLHttpRequest();
req.open('GET', 'assets/data/listOfHotels.json');
req.onload = () => {
data(JSON.parse(req.response));
};
req.send();
}
}
并将其转换为lst
,因为它是data.frame
。通常情况下,如果尺寸相同,则使用matrix
应该有效。但是,这里不一样。使用do.call(rbind, lst)
中的map_dfr
,我们遍历每个purrr
元素,应用函数lst
将其转换为as.data.frame
,同时,我们得到我们正在使用data.frame
map_dfr()和map_dfc()返回由行绑定创建的数据帧 列绑定分别。他们需要安装dplyr。
map_dfr
注意:它返回不存在的元素的NA,并且优于具有空白元素
答案 1 :(得分:3)
plyr
包中还有一个非常方便的功能,可以轻松处理,
plyr::rbind.fill(lapply(lst, as.data.frame))
# V1 V2
#1 1 [19]
#2 1 <NA>
#3 1 [41]
#4 1 [55]
#5 1 [56]
#6 1 [84]