99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀R語言的數(shù)據導入與導出學習筆記
R語言的數(shù)據導入與導出學習筆記
2018-03-18
收藏

R語言的數(shù)據導入與導出學習筆記

福爾·摩斯曾說過:“數(shù)據,數(shù)據,沒有數(shù)據的推理是罪惡!”不過比起有意思的統(tǒng)計分析,數(shù)據的導入與導出顯得十分的無趣,但是不得不說統(tǒng)計分析的數(shù)據導入與導出是個讓人沮喪的任務,而且耗時巨大。

今天分享的是R中數(shù)據的輸出與一些特定格式的數(shù)據讀入。

一、數(shù)據的輸出
       R中提供了write.table(),cat()等函數(shù)來導出數(shù)據。不過值得指出的是R語言能夠導出的數(shù)據格式是有限的,比如在基本包中,我們能夠導出數(shù)據的格式只有txt,csv。

現(xiàn)在介紹一下兩個函數(shù)的用法:

write.table(x, file = "", append =FALSE, quote = TRUE, sep = " ",

eol = "\n", na = "NA", dec = ".",row.names = TRUE,

col.names = TRUE, qmethod = c("escape", "double"),

fileEncoding = "")


write.csv(...)

write.csv2(...)

write.csv(),write.csv2()可以看做write.table()的變體,我們知道write.csv(),與參數(shù)sep=“,”的write.table()是等效的。下面介紹幾個常見參數(shù):

x:數(shù)據集

file:文件的路徑,包括文件名如:”D:/R/data/data1.csv”

quote:數(shù)據在寫入文件中時我們常用引號將其隔開,當參數(shù)為F時,文件中的數(shù)據不再用引號修飾

append:是否追加,如果文件名已存在而沒有選擇追加,那么文件將會被覆蓋。(覆蓋時是沒有提示的,所以命名需要注意一些。

cat(... , file = "", sep = " ", fill = FALSE, labels = NULL,    append = FALSE)

cat()作為一個輸出函數(shù)與dos命令差不多,也是將數(shù)據集或數(shù)據寫入文件中,常用參數(shù)和write.table()類似。

cat()函數(shù)用來輸出,可以把多個參數(shù)連接起來再輸出(具有paste()的功能)。例如:

> cat(c("AB", "C"),c("E", "F"), "n", sep="/ ")

AB/ C/ E/ F/ n

還可以指定一個參數(shù)file=給一個文件名,可以把結果寫到指定的文件中,如: > cat("i = ", 1, "n", file="d:/R/data2.txt")如果指定的文件已經存在則原來內容被覆蓋。加上一個append=TRUE參數(shù)可以不覆蓋原文件而是在文件末尾附加,這很適用于運行中的結果記錄。

當然cat()的用法比較豐富,也可以用來查看文件,與format合用控制輸出格式等。

二、數(shù)據的導入

先介紹R中基本的讀取數(shù)據函數(shù)read.table()的用法:

read.table(file, header = FALSE, sep = "", quote = "\"'",           dec = ".", row.names, col.names,           as.is = !stringsAsFactors,           na.strings = "NA", colClasses = NA, nrows = -1,           skip = 0, check.names = TRUE, fill = !blank.lines.skip,           strip.white = FALSE, blank.lines.skip = TRUE,           comment.char = "#",           allowEscapes = FALSE, flush = FALSE,           stringsAsFactors = default.stringsAsFactors(),           fileEncoding = "", encoding = "unknown", text) read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".",         fill = TRUE, comment.char="", ...) read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",",          fill = TRUE, comment.char="", ...) read.delim(file, header = TRUE, sep = "\t", quote="\"", dec=".",           fill = TRUE, comment.char="", ...) read.delim2(file, header = TRUE, sep = "\t", quote="\"", dec=",",            fill = TRUE, comment.char="", ...)

介紹常用參數(shù):

File:文件路徑,可以用絕對路徑也可以用相對路徑,R的工作目錄你可以使用getwd()來查看,用setwd()來改。

Header:讀取文件的第一行是否用作變量名

Sep:分隔符,參數(shù)為“,“時等價于read.csv()

Scan()函數(shù)也是一個讀取數(shù)據比較好的函數(shù),但是參數(shù)較為復雜,我們可以說,read.table()函數(shù)是scan函數(shù)的設定好部分參數(shù)的結果。

Read.delim()這個可以讀到剪貼板的東西,用法為read.delim(clipboard)其他參數(shù)與read.table相同。

Read.fwf()讀取固定長度的數(shù)據,也可以利用這個特性截去數(shù)據的尾巴或者表格的尾巴。


自帶的foreign包可以實現(xiàn)s-plus,sas,spss,stata的數(shù)據讀入。以讀stata數(shù)據為例:

>Read.dta(“d:/R/data3.dta”)其他參數(shù)與read.table也是一樣的。


遺憾的是,基本包與foreign包都沒有辦法讀取excel的數(shù)據。但這并不代表我們沒辦法讀取excel的數(shù)據。例如我們可以將excel的數(shù)據放在剪貼板中,通過read.delim(clipbroad)來讀取。也可以將excel表格變成csv格式的再處理。最后指出,R中的gdata包的read.xls函數(shù)以及RODBC包中也有相應的處理函數(shù)。


本文的最后,運用R語言的幫助文檔《R數(shù)據的導入與導出》中的一段話作為結束:“In general, statistical systems like R arenot particularly well suited to manipulations of large-scale data. Some othersystems are better than R at this, and part of the thrust of this manual is tosuggest that rather than duplicating functionality in R we can make anothersystem do the work! (For example Therneau & Grambsch (2000) commented thatthey preferred to do data manipulation in SAS and then use packagesurvivalin S for the analysis.)”


數(shù)據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }