我有一堆.RData時間序列文件,並且希望直接將它們加載到Python中,而無需先將文件轉換爲其他擴展名(如.csv)。有關完成此任務的最佳方法的任何想法?將.RData文件加載到Python
回答
人們在R幫助和R-dev列表上提出這樣的問題,通常的答案是代碼是.RData
文件格式的文檔。因此任何其他語言的其他實現都是hard ++。
我認爲唯一合理的方法是安裝RPy2並使用R的load
函數,隨時轉換爲適當的python對象。 .RData
文件可以包含結構化對象以及普通表,所以要小心。
Linky:http://rpy.sourceforge.net/rpy2/doc-2.4/html/
Quicky:
>>> import rpy2.robjects as robjects
>>> robjects.r['load'](".RData")
對象現在被加載到將R的工作區。
>>> robjects.r['y']
<FloatVector - Python:0x24c6560/R:0xf1f0e0>
[0.763684, 0.086314, 0.617097, ..., 0.443631, 0.281865, 0.839317]
這是一個簡單的標量,d是數據幀,我能子集,以獲得列:
>>> robjects.r['d'][0]
<IntVector - Python:0x24c9248/R:0xbbc6c0>
[ 1, 2, 3, ..., 8, 9, 10]
>>> robjects.r['d'][1]
<FloatVector - Python:0x24c93b0/R:0xf1f230>
[0.975648, 0.597036, 0.254840, ..., 0.891975, 0.824879, 0.870136]
有一個叫rpy
第三方庫,你可以使用這個庫加載.RData
文件。你可以通過pip
得到這個安裝pip instally rpy
會做的伎倆,如果你沒有rpy
,那麼我建議你看看如何安裝它。否則,你可以簡單的做:
from rpy import *
r.load("file name here")
編輯:
好像我現在有點老學校裏,S rpy2,所以你可以使用它。如果您正在使用Jupyter筆記本
真棒,謝謝 – Stu
仍然使用'rpy'?這很常見。 –
@Stu如果這對你有幫助,考慮接受[答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –
Jupyter筆記本用戶
,你需要做2步:
第1步:去http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2和下載Python接口在我的情況R語言(嵌入式R)我會用rpy2-2.8.6-cp36-cp36m-win_amd64.whl
將這個文件在同一個工作目錄中您目前在
第二步:去你Jupyter筆記本,寫如下命令
# This is to install rpy2 library in Anaconda
!pip install rpy2-2.8.6-cp36-cp36m-win_amd64.whl
然後
# This is important if you will be using rpy2
import os
os.environ['R_USER'] = 'D:\Anaconda3\Lib\site-packages\rpy2'
然後
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
這應該允許您在Python中使用R裏面的函數。現在,你必須導入readRDS
如下
readRDS = robjects.r['readRDS']
df = readRDS('Data1.rds')
df = pandas2ri.ri2py(df)
df.head()
恭喜!現在你有數據幀你想
不過,我勸你把它在Python中稍後的時間使用鹹菜文件保存爲
df.to_pickle('Data1')
因此,下一次你可以簡單地通過
df1=pd.read_pickle('Data1')
使用
- 1. 從url加載Rdata文件
- 2. 裝載RDATA文件
- 3. 使用rpy2將.RData文件讀入python
- 4. rpy2將一個.RData文件中的多個DataFrame加載到熊貓中
- 5. .RData錯誤 - R不加載
- 6. 在R 3.2.2中加載.RData
- 7. 使用.RData文件
- 8. 難以加載.rdata文件,因爲名稱
- 9. 加載Stata 13和Rdata文件時出現問題。新問題
- 10. 將NetCDF文件轉換爲RData?
- 11. 將文件加載到TAdvMemo
- 12. 將文件加載到richtextbox
- 13. 如何從R包中加載.Rdata?
- 14. 在python中將文件加載爲JSON?
- 15. 什麼是.RData文件
- 16. 數據幀添加到現有的RDATA文件
- 17. 如何在Python中將文本文件加載到字典中?
- 18. Jupyter Anaconda:將文本文件加載到Python中
- 19. python將OpenDap加載到NetcdfFile
- 20. 從JSON文件加載變量到Python
- 21. 將文本文件加載到JtextArea
- 22. 將ISO8851文本文件加載到TextField()
- 23. 將文本文件加載到jTable中
- 24. 保存矩陣RDATA和更新RDATA文件
- 25. 如何將分隔的CSV文件加載到Python中?
- 26. 如何使用PySide將.ui文件加載到python類上?
- 27. 將單元陣列(.mat文件)加載到Python中
- 28. 無法將JSON文件加載到python中
- 29. 如何將文件加載到python控制檯?
- 30. Python:將數據從文件加載到IRC bot中
一個有用的註釋添加:通常你會想在Numpy中操作這些對象,所以我會添加以下內容:'從rpy2.robjects import numpy2ri'然後''numpy2ri.ri2numpy(r ['d'])''。然後你可以用「pythonic」方式操作numpy數組。 – jonathanrocher
@jonathanrocher現在看來(numpy 1.11.1)你可以做'np.array(r ['d'])'而且'numpy2ri'裏面沒有'ri2numpy'了。 – daknowles