Номера JavaScript обычно вводятся как десятичные числа с плавающей запятой, но они внутренне представлены как двоичные числа с плавающей запятой. Это приводит к неточности.
blockquote>Для получения дополнительной информации вы можете прочитать эту книгу:
Если вы хотите придерживаться базы R, вы можете сделать что-то вроде этого:
### Get all the columns names
col <- unique(unlist(sapply(df.lst, names)))
col
## [1] "a" "b" "d" "e" "f" "g"
### Fill the missing columns with NA
df.lst <- lapply(df.lst, function(df) {
df[, setdiff(col, names(df))] <- NA
df
})
### Then Bind it
do.call(rbind, df.lst)
## a b d e f g
## A.1 1 5 2 1 1 1
## A.2 2 4 3 1 2 2
## B.1 1 3 2 NA NA NA
## B.2 2 2 3 NA NA NA
## C.1 1 4 1 1 NA NA
## C.2 2 3 2 3 NA NA
Мы можем использовать
library(dplyr)
bind_rows(df.lst)
Или
library(data.table)
rbindlist(df.lst, fill=TRUE)
Попробуйте
library(plyr)
ldply(df.lst,data.frame)
.id a b d e f g
1 A 1 5 2 1 1 1
2 A 2 4 3 1 2 2
3 B 1 3 2 NA NA NA
4 B 2 2 3 NA NA NA
5 C 1 4 1 1 NA NA
6 C 2 3 2 3 NA NA
При необходимости вы можете удалить первый столбец:
df<-ldply(df.lst,data.frame)
df[,-1]
a b d e f g
1 1 5 2 1 1 1
2 2 4 3 1 2 2
3 1 3 2 NA NA NA
4 2 2 3 NA NA NA
5 1 4 1 1 NA NA
6 2 3 2 3 NA NA
data.frame
(вмененный NA) в конце вызова функции, если вы хотитеlapply
изменить каждыйdata.frame
, как вы этого хотите. – dickoa 18 November 2015 в 13:51