簡體   English   中英

從 R 導出對象,以便將它們導入 Python 腳本

[英]export objects from R, so they can be imported into a Python script

我不太了解 R,但我有一個用 R 編寫的腳本。 該腳本的作用是基於一個時間序列,它創建一個如下表所示的表。

我需要導出的幾百個表之一

我設法分析了多個時間序列並將所有表創建為 R 中的對象。 我當然可以將這些單獨寫入 excel 文件,我可以使用 Python 讀取該文件,但這不是很方便,因為我有數百個這樣的表。

這些表對象具有以下 class:

在此處輸入圖像描述

我試圖將它們放入某種字典中,其中每個表在導入 python 后可以單獨調用。 然后我找到了一個可以將對象導出到 RData 的選項。 這很完美,我可以導入 python,但我不知道如何為所有表自動執行此操作。

save(cluster0,cluster1,cluster2, file = "/Users/jerjely/Desktop/burst.RData")

我發現的另一個選擇是保存所有內容,如下所示:

save.image(file = "/Users/jerjely/Desktop/bursts.RData")

但是我無法讀入 python,因為它有無法識別的對象。 我假設是因為 R 中定義的功能。

總而言之,如果有人能告訴我如何將所有表的列表填寫到第一個命令中,我將非常高興。 或者我的另一個想法是是否可以刪除函數和對象,所以我只能導出所需的對象。

任何幫助是極大的贊賞!

非常感謝!

有這個: Loading.RData files into Python和更現代的可能,這個: How to load R's.rdata files into Python?

搜索python 讀取 rdata給了我很多結果。

對於簡單的結構 json 在其他方面很好。


library(jsonlite)

l <- list(
    cluster1, cluster2, cluster3
)

cat(
    toJSON( l ),
    file="/some/file.json"
)

然后改為閱讀。 Python 讀取 json 作為早餐。

我注意到這不會保留列名。 (可能也不是行名):

我沒有你的數據,所以再次抓起可憐的花朵:

l <- rep(list(head(as.matrix(iris[,1:4]))), 3 )
cat( toJSON( l, pretty=T ) )

[
  [
    [5.1, 3.5, 1.4, 0.2],
    [4.9, 3, 1.4, 0.2],
    [4.7, 3.2, 1.3, 0.2],
    [4.6, 3.1, 1.5, 0.2],
    [5, 3.6, 1.4, 0.2],
    [5.4, 3.9, 1.7, 0.4]
  ],
  [
    [5.1, 3.5, 1.4, 0.2],
    [4.9, 3, 1.4, 0.2],
    [4.7, 3.2, 1.3, 0.2],
    [4.6, 3.1, 1.5, 0.2],
    [5, 3.6, 1.4, 0.2],
    [5.4, 3.9, 1.7, 0.4]
  ],
  [
    [5.1, 3.5, 1.4, 0.2],
    [4.9, 3, 1.4, 0.2],
    [4.7, 3.2, 1.3, 0.2],
    [4.6, 3.1, 1.5, 0.2],
    [5, 3.6, 1.4, 0.2],
    [5.4, 3.9, 1.7, 0.4]
  ]
]

現在,如果您將那些 arrays 轉換為 data.frame,您會得到這個結構,在 python 中使用它可能更容易嗎?

l <- rep(list(head(as.data.frame(iris[,1:4]))), 3 )
cat( toJSON( l, pretty=T ) )

變成這樣:


[
  [
    {
      "Sepal.Length": 5.1,
      "Sepal.Width": 3.5,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.9,
      "Sepal.Width": 3,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.7,
      "Sepal.Width": 3.2,
      "Petal.Length": 1.3,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.6,
      "Sepal.Width": 3.1,
      "Petal.Length": 1.5,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 5,
      "Sepal.Width": 3.6,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 5.4,
      "Sepal.Width": 3.9,
      "Petal.Length": 1.7,
      "Petal.Width": 0.4
    }
  ],
  [
    {
      "Sepal.Length": 5.1,
      "Sepal.Width": 3.5,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.9,
      "Sepal.Width": 3,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.7,
      "Sepal.Width": 3.2,
      "Petal.Length": 1.3,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.6,
      "Sepal.Width": 3.1,
      "Petal.Length": 1.5,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 5,
      "Sepal.Width": 3.6,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 5.4,
      "Sepal.Width": 3.9,
      "Petal.Length": 1.7,
      "Petal.Width": 0.4
    }
  ],
  [
    {
      "Sepal.Length": 5.1,
      "Sepal.Width": 3.5,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.9,
      "Sepal.Width": 3,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.7,
      "Sepal.Width": 3.2,
      "Petal.Length": 1.3,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 4.6,
      "Sepal.Width": 3.1,
      "Petal.Length": 1.5,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 5,
      "Sepal.Width": 3.6,
      "Petal.Length": 1.4,
      "Petal.Width": 0.2
    },
    {
      "Sepal.Length": 5.4,
      "Sepal.Width": 3.9,
      "Petal.Length": 1.7,
      "Petal.Width": 0.4
    }
  ]
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM