Я хочу, чтобы преобразовать список в dataframe, то коды:Почему rbind() и do.call (rbind,) возвращают другой результат?
ls<-list(a=c(1:4),b=c(3:6))
do.call("rbind",ls)
результат путем добавления do.call, как показано ниже, он возвращает dataframe, который хотел
> do.call("rbind",ls)
[,1] [,2] [,3] [,4]
a 1 2 3 4
b 3 4 5 6
Однако если я просто использую функцию rbind, он возвращает список. Почему в этой ситуации ситуация меняется?
my.df<-rbind(ls)
str(ls)
> my.df
a b
ls Integer,4 Integer,4
> str(ls)
List of 2
$ a: int [1:4] 1 2 3 4
$ b: int [1:4] 3 4 5 6
'do.call (" rbind ", ls)' возвращает матрицу, а не кадр данных. То же самое с 'rbind (ls)'. –
Потому что 'do.call' извлекает элементы из списка - вот в чем разница. Как будто вы делаете 'rbind (ls [[1]], ls [[2]]) –
Спасибо @RichardScriven, но вывод' rbind (ls) 'по-прежнему является списком. На самом деле я хочу преобразовать список в матрицу –