0
Я начал с этим кадром данных:Fix Рамка искореженных данных
sample.df <- as.data.frame(list(a=rnorm(10),b=letters[1:10],c=1:10))
> str(sample.df)
'data.frame': 10 obs. of 3 variables:
$ a: num -0.0407 0.5403 -1.2885 2.2196 -1.3411 ...
$ b: Factor w/ 10 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10
$ c: int 1 2 3 4 5 6 7 8 9 10
и я хранил его в MongoDB. Когда я восстановил его (в виде списка), это выглядело так:
list(structure(list(`_id` = "54fd400dc37145c28f1077a0", `1` = structure(list(
a = -0.0406532756571652, b = 1L, c = 1L), .Names = c("a",
"b", "c")), `2` = structure(list(a = 0.540306074206446, b = 2L,
c = 2L), .Names = c("a", "b", "c")), `3` = structure(list(
a = -1.28846428560021, b = 3L, c = 3L), .Names = c("a", "b",
"c")), `4` = structure(list(a = 2.219612871209, b = 4L, c = 4L), .Names = c("a",
"b", "c")), `5` = structure(list(a = -1.34109378068153, b = 5L,
c = 5L), .Names = c("a", "b", "c")), `6` = structure(list(
a = -0.0971508202872865, b = 6L, c = 6L), .Names = c("a",
"b", "c")), `7` = structure(list(a = -1.3419987318416, b = 7L,
c = 7L), .Names = c("a", "b", "c")), `8` = structure(list(
a = -0.365034225520606, b = 8L, c = 8L), .Names = c("a",
"b", "c")), `9` = structure(list(a = -0.0840790077727742, b = 9L,
c = 9L), .Names = c("a", "b", "c")), `10` = structure(list(
a = 0.797477456457765, b = 10L, c = 10L), .Names = c("a",
"b", "c"))), .Names = c("_id", "1", "2", "3", "4", "5", "6",
"7", "8", "9", "10")))
Как я могу получить обратно к исходному кадру данных? Я попытался вырезать элемент _id и используя as.data.frame, однако я получаю это:
l1 <- l[[1]]
l.df <- as.data.frame(l1[2:11])
> str(l.df)
'data.frame': 1 obs. of 30 variables:
$ X1.a : num -0.0407
$ X1.b : int 1
$ X1.c : int 1
$ X2.a : num 0.54
$ X2.b : int 2
$ X2.c : int 2
$ X3.a : num -1.29
$ X3.b : int 3
$ X3.c : int 3
$ X4.a : num 2.22
$ X4.b : int 4
$ X4.c : int 4
$ X5.a : num -1.34
$ X5.b : int 5
$ X5.c : int 5
$ X6.a : num -0.0972
$ X6.b : int 6
$ X6.c : int 6
$ X7.a : num -1.34
$ X7.b : int 7
$ X7.c : int 7
$ X8.a : num -0.365
$ X8.b : int 8
$ X8.c : int 8
$ X9.a : num -0.0841
$ X9.b : int 9
$ X9.c : int 9
$ X10.a: num 0.797
$ X10.b: int 10
$ X10.c: int 10
, очевидно, что не получилось ...
Использование 'sample.list' в списке вы можете взломать что-нибудь вместе, как:' data.frame (setNames (lapply (имена (sample.df), функция (х) sapply (sample.list [[ 1]] [- 1], функция (y) y [[x]])), names (sample.df))) ' – thelatemail
Спасибо, такие работы, однако лучше не зависеть от исходный кадр данных, который может быть давно ушел. Есть ли способ сделать это зависимым от sample.list? – variable
Возможно, вместо этого выведите имена из 'sample.list' и замените соответствующие части кода на' names (sample.list [[1]] [2] [[1]]) ' – thelatemail