0

私はこのデータフレームから始めました:

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

明らかにそれはうまくいきませんでした...

4

1 に答える 1