4 回答

TA貢獻1869條經驗 獲得超4個贊
一、 安裝RODBC庫
1、進入R語言的GUI界面(RGUI.EXE),在菜單欄選擇“程序包/安裝程序包
2、在彈出的窗口里往下拉,選擇RODBC如圖,點擊確定
3、在ODBC數據源管理器里將需要的數據庫添加進去,這里筆者使用的是SQL Server2008,驅動程序選擇Native Client10.0
3、在R語言窗口輸入連接語句
> library(RODBC)
**這里是載入RODBC庫
> channel<-odbcConnect("MyTest",uid="ripley",case="tolower")
**連接剛才添加進數據源的“MyTest”數據庫
**ch <- odbcConnect("some dsn ", uid = "user ", pwd = "**** ")
**表示用戶名為user,密碼是****,如果沒有設置,可以直接忽略
> data(USArrests)
**將“USArrests”表寫進數據庫里(這個表是R自帶的)
> sqlSave(channel,USArrests,rownames = "state",addPK = TRUE)
**將數據流保存,這時候打開SQL Server就可以看到新建的USArrests表了
> rm(USArrests)
> sqlTables(channel)
**給出數據庫中的表
> sqlFetch(channel,"USArrests",rownames = "state")
**輸出USArrests表中的內容
> sqlQuery(channel,"select * from USArrests")
**調用SELECT查詢語句并返回結果(如圖)
> sqlDrop(channel,"USArrests")
**刪除表
> odbcClose(channel)
**最后要記得關閉連接
當然,通過這個辦法也可以讀取Excel、Access表中的內容,具體方法類似,這里不再重復

TA貢獻1831條經驗 獲得超10個贊
有現成的包:matchprobes包 里面有個函數basecontent(seq)計算4中堿基每種的含量;
自己做的話:
#List是你的序列
unlist(strsplit(List,""))->sep.letter;#把每個字母都單獨分開
#遍歷所有字母
count_a=0; count_g=0; count_t=0; count_c=0;
for(i in 1:length(sep.letter)){
if(sep.letter[i]=="a"){count_a=count_a+1;}
if(sep.letter[i]=="g"){count_g=count_g+1;}
.........................
}

TA貢獻1111條經驗 獲得超0個贊
另一種是DBI方式,所以個人比較偏好用DBI連接方式。有下面這幾種主要的包提供了DBI連接,可以根據已經安裝的數據庫類型來安裝相應的驅動。因為后者保留了各數據庫原本的特性,根據連接方式不同我們有兩種選擇:一種是ODBC方式,需要安裝RODBC包并安裝ODBC驅動當然也可以將R與外部數據庫連接,直接在R中操作數據庫,這也是一種可行的方法。在R中連接數據庫需要安裝其它的擴展包,并生成最終結果。

TA貢獻1829條經驗 獲得超4個贊
當然也可以將R與外部數據庫連接,直接在R中操作數據庫,并生成最終結果,這也是一種可行的方法。在R中連接數據庫需要安裝其它的擴展包,根據連接方式不同我們有兩種選擇:一種是ODBC方式,需要安裝RODBC包并安裝ODBC驅動。另一種是DBI方式,可以根據已經安裝的數據庫類型來安裝相應的驅動。因為后者保留了各數據庫原本的特性,所以個人比較偏好用DBI連接方式。有下面這幾種主要的包提供了DBI連接:RMySQL,RSQLite,ROracle,RPostgreSQL。由名字看得出它們分別對應了幾種主流的數據庫。
- 4 回答
- 0 關注
- 1703 瀏覽
添加回答
舉報