1. 在r語言中用什麼命令讀取全部數據
使用R語言的時候,如果是少量數據,不妨使用c()或其他函數進行創建;但是對於大量數據,最好還是先通過其他更方便的軟體創建數據文件,然後使用R讀入這個文件。
.csv是非常好的數據文件格式,跨平台支持非常好。我在Excel或者SPSS中創建的數據,只要存為csv格式,就可以使用幾乎任何數據處理軟體對這些數據進行處理了。使用通用格式在多人合作、不同版本兼容等常見行為中,優勢十分明顯。另外,之所以使用不同的數據處理軟體,第一,可以取長補短。比如有些工作SPSS很復雜的,可以用R語言幾行命令搞定。第二,可以進行軟體間處理結果對照,發現問題。
R語言中讀取外部文件的最基本函數是read.table(),還有用來讀csv的read.csv(), .csv是非常好的數據文件格式,跨平台支持非常好。。
輸入help(read.table)命令,就看到了關於數據輸入函數的說明。
2. 如何用R語言的quantmod包獲取一系列股票的歷史日線數據
我舉個例子供你參考:
> install.packages('quantmod') # 安裝安裝quantmod包
> require(quantmod)#引用quantmod包
> getSymbols("GOOG",src="yahoo",from="2013-01-01", to='2013-04-24') #從雅虎財經獲取google的股票數據
> chartSeries(GOOG,up.col='red',dn.col='green') #顯示K線圖
3. R軟體中怎麼導出數據
一般的文本格式導入,都可以用read.table命令把數據扔進R裡面。Excel和Spss數據的話,可用相應軟體將文件打開,觀察數據結構後將其復制到剪貼板,然後一樣可以用read.table('clipboard')扔到R裡面。如果文件太大不好復制,那麼差攔可以利用Excel和Spss的導出功能,將數據導出成文本格式。
還有一種情況就是,你的計算機上沒有安裝Excel或是Spss,這數據導入就要用到RODBC擴展包了。首先裝載RODBC包。然後輸入數據文件的絕對路徑(要注意是用/而不是\)來定義連接,最後用數據抓取命令獲取你需要的標簽頁數據內容(Sheet1)。
library(RODBC)
channel=odbcConnectExcel("d:/test.xls")
mydata=sqlFetch(channel,'Sheet1')這樣簡單的兩個步驟搏拆就可以將Excel數據導入R的mydata變數中。如果是Excel2007格式數據則要換一個函數
channel=odbcConnectExcel2007('d:/test.xlsx')
mydata=sqlFetch(channel,'Sheet1')導入spss的sav格基慶棗式數據則要用到foreign擴展包,載入後直接用read.spss讀取sav文件
library(foreign)
mydata=read.spss('d:/test.sav')上面的函數在很多情況下沒能將sav文件中的附加信息導進來,例如數據的label,那麼建議用Hmisc擴展包的spss.get函數,效果會更好一些。
4. 如何在R語言中讀入數據和導出存儲數據
1.R數據的保存與載入
可通過save()函數保存為.Rdata文件,通過load()函數將數據載入到R中。
[ruby]view plain
>a<-1:10
>save(a,file='d://data//mData.Rdata')
>rm(a)#將對象a從R中刪除
>load('d://data//mData.Rdata')
>print(a)
[1]12345678910
下面創建df1的數據框,通過函數write.csv()保存為一個.csv文件,然後通過read.csv()將df1載入到數據框df2中。
[ruby]view plain
>var1<-1:5
>var2<-(1:5)/10
>var3<-c("Rand","DataMining","Examples","Case","Studies")
>df1<-data.frame(var1,var2,var3)
>names(df1)<-c("VariableInt","VariableReal","VariableChar")
>write.csv(df1,"d://data//mmmyData.csv",row.names=FALSE)
>df2<-read.csv("d://data//mmmyData.csv")
>print(df2)
110.1Rand
220.2DataMining
330.3Examples
440.4Case
550.5Studies
RODBC提供了ODBC資料庫的連接。
3.1從資料庫中讀取數據
odbcConnect()建立一個資料庫連接,sqlQuery()向資料庫發送一個SQL查詢,odbcClose()關閉資料庫連接。
[ruby]view plain
library(RODBC)
connection<-odbcConnect(dsn="servername",uid="userid",pwd="******")
query<-"SELECT*FROMlib.tableWHERE..."
#orreadqueryfromfile
#query<-readChar("data/myQuery.sql",nchars=99999)
myData<-sqlQuery(connection,query,errors=TRUE)
odbcClose(connection)
3.2從Excel文件中導入與導出數據
[ruby]view plain
library("RODBC")
conn<-odbcConnectExcel("D:/data/Amtrak.xls")
Amtrak<-sqlFetch(conn,"Data")
close(conn)
5. 如何用R語言在數據中提取指定列數據,並且形成一個新的數據表
1、分析數據表:通過瀏覽「入庫明細」表,我們可能看到入庫明細表中,作為提取記錄的條件零件號在A列。
需要提取的記錄,入庫日期在H列、入庫單號在O列、最後生產批號在L列、入庫前庫存數在Q列。為DC000496ZL的記錄有5條(截圖中的4條是指上面有4條)。
2、列出提取條件及項目:在sheet1中,將A列放置提取條件(即零件號)。在B、C、D、E列分別寫上提取項目名稱:入庫日期、入庫單號、最後生產批號、入庫前庫存數。
3、寫公式:在最後入庫日期項目下B2中輸入公式:=MAX((入庫明細!$A$2:$A$26=$A2)*(入庫明細!$H$2:$H$26)),這是一個數組公式,請用三鍵確認(ctrl+shift+enter)。
搜索
免費自學excel教程全套
excel另一列數據提取
自動抓取數據excel表
表格技巧大全
excel100個常用技巧
新手怎麼做財務報表
6. 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如webservice獲取數據。還有種辦法就是去連接提供即時信息的網頁硬解析。
代碼舉例如下:
Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '獲取失敗,請檢查網路狀態,或者API埠URL已經不匹配!'
get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request
def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
獲取個股歷史交易數據
--------
輸入:
--------
code:string
股票代碼 比如:601989
start:string
開始日期 格式:YYYY-MM-DD 為空時取到API所提供的最早日期數據
end:string
結束日期 格式:YYYY-MM-DD 為空時取到最近一個交易日數據
ktype:string(default=D, 函數內部自動統一為大寫)
數據類型 D=日K線,W=周K線,M=月K線,5=5分鍾,15=15分鍾
30=30分鍾,60=60分鍾
輸出:
--------
DataFrame
date 日期
open 開盤價
high 最高價
close 收盤價
low 最低價
chg 漲跌額
p_chg 漲跌幅
ma5 5日均價
ma10 10日均價
ma20 20日均價
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover換手率(指數無此項)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()
url = ''
url = get_url(ktype, code)
print(url)
js = json.loads(ping_API(url))
cols = []
if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)
if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df
def code_to_APIcode(code):
"""
功能:
驗證輸入的股票代碼是否正確,若正確則返回API對應使用的股票代碼
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code
def get_url(ktype, code):
"""
功能:
驗證輸入的K線類型是否正確,若正確則返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')
def ping_API(url):
"""
功能:
向API發送數據請求,若鏈接正常返回數據
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text
#測試入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))
7. 怎麼在股市期間實時抓取rsi數據
怎麼樣在股市期間,實時抓出rsi數據?
請看下面的分享
i問財財經搜索是同花順旗下的服務之一,主要針對上市公司的公告、研報、即時新聞等提供搜索及參考資料。
相對於其他股票軟體來說,一個強大之處在於用自然語言就可以按你指定的條件進行篩選。而大部分現有的行情軟體支持的都不是很好,寫起來就費盡心思,還不一定能行。
然而i問財有一個缺陷在於它只能獲取一天的股票相關信息。如果,我們希望實現抓取一段時間的股票歷史信息,就要通過網頁批量抓取。
事實上,我們可以通過製作一個爬蟲軟體來自己定義時間日期和搜索的關鍵詞,並且批量下載一定日期范圍的數據。
我們以抓取每天的收盤價大於均線上股票數目為例子,用r來實現抓取:
因此,我們在r中可以通過製作一個時間段的偽鏈接來向伺服器不斷發送搜索請求,從而實現一段日期數據的批量抓取
url=paste("股票 - i問財財經搜索",as.character(as.Date(i, origin = "1970-01-01")) ,input2)
然後,我們查看其中一天的網頁源代碼,可以找到對應股票數據的xml源碼。
8. 如何在r語言中抓取股票數據並分析論文
用quantomd包
然後getsymbols函數
分析論文 要看你研究方向
如果是看影響因素 一般回歸就行
如果看股票波動和預測 可能需要時間序列