欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語(yǔ)言數(shù)據(jù)的輸入和輸出操作

 更新時(shí)間:2021年04月22日 17:07:01   作者:XIUXIU179  
這篇文章主要介紹了R語(yǔ)言數(shù)據(jù)的輸入和輸出操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

數(shù)據(jù)的載入

R本身已經(jīng)提供了超過(guò)50個(gè)數(shù)據(jù)集,而在眾多功能包中,默認(rèn)的數(shù)據(jù)集被存放在datasets程序包中,通過(guò)函數(shù)data()k可以查看系統(tǒng)提供所有的數(shù)據(jù)包,同時(shí)可以通過(guò)函數(shù)library()加載程序包中的數(shù)據(jù)。

矩陣型數(shù)據(jù)最常用的讀取方式是read.table()具體的調(diào)用格式是()

read.table(file, header = FALSE, sep = "", quote = "\"'",dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),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, skipNul = FALSE)

file是要讀的數(shù)據(jù)文件名稱;header = TURE表示文件第一行變化變量名,sep = ""表示文件中的分割符為空格,dec = "."用來(lái)表示小數(shù)點(diǎn)的字符,

row.names, col.names,用來(lái)表示向量的行名與列名, na.strings = "NA"用來(lái)表示缺失值,skip = 0跳過(guò)前幾行

讀入數(shù)據(jù)后,可以通過(guò)簡(jiǎn)單的函數(shù)來(lái)查看數(shù)據(jù)的基本信息。mode(),names(),dim(), 且使用attach()函數(shù),便可以直接通過(guò)變量名來(lái)獲取變量中的信息,函數(shù)detach()用于執(zhí)行相反的操作。

處理其他格式的軟件

當(dāng)數(shù)據(jù)量較少時(shí),在EXCEL中復(fù)制好要用的數(shù)據(jù)然后導(dǎo)入到R中。

> data.excel = read.delim("clipboard")
> data.excel
    X X1 X2       value
1   1 Be Be  1.00000000
2   2  B Be -0.20154586
3   3 Mg Be -0.31724811
4   4 Al Be -0.03359098

當(dāng)數(shù)據(jù)量很多時(shí),利用RODBC軟件包(提供r和各類數(shù)據(jù)庫(kù)的一個(gè)借口如access和SQL server等)所提供的方法便可以實(shí)現(xiàn)對(duì)Excel數(shù)據(jù)的直接訪問(wèn)~

讀取來(lái)自網(wǎng)頁(yè)的數(shù)據(jù)

在實(shí)際的應(yīng)用中,從網(wǎng)站上直接獲取數(shù)據(jù)也是非常常見(jiàn)的,例如國(guó)家統(tǒng)計(jì)局官方發(fā)布的權(quán)威統(tǒng)計(jì)數(shù)據(jù),中國(guó)人民銀行網(wǎng)站發(fā)布的經(jīng)濟(jì)數(shù)據(jù)或其他專業(yè)財(cái)經(jīng)網(wǎng)站提供的股市、期貨、債券數(shù)據(jù)都是進(jìn)行宏觀數(shù)據(jù)分析工作時(shí)常用的數(shù)據(jù)源。R讀取網(wǎng)頁(yè)中的HTML表格數(shù)據(jù),需要用到XML程序包提供的readHTMLTable()函數(shù)。

readHTMLTable(doc, header = NA,
              colClasses = NULL, skip.rows = integer(), trim = TRUE,
              elFun = xmlValue, as.data.frame = TRUE, which = integer(),
               ...)

doc給出的是HTML文件或者網(wǎng)頁(yè)地址,which是返回網(wǎng)頁(yè)中的那幾個(gè)表格,注意如果網(wǎng)址較長(zhǎng)沒(méi)在輸入時(shí)需要換行,使用函數(shù)gsub將字符中的換行符刪去。

baseURL = gsub("\\n", "", baseURL)

數(shù)據(jù)的保存

數(shù)據(jù)處理的結(jié)果或者中間結(jié)果應(yīng)該被妥善保存,最基本的保存工作的函數(shù)為cat()函數(shù)。

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

參數(shù)file指定了輸出的文件名,若文件已存在則原來(lái)的內(nèi)容將被覆蓋,若將參數(shù)append = T,則是在文件末尾追加內(nèi)容。

> car = file("K:/car.txt")
> cat("Make lp100km mass.kg List.price", "\"Alpha Remeo\" 9.5 1242 38500", "\"Audi A3\" 8.8 1160 38700", file = car, sep = "\n")
> close(car)

更常用的寫文件方式是把一個(gè)矩陣或者數(shù)據(jù)框以矩形塊的形式整體寫入文件,用write.table()函數(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 = "")

數(shù)據(jù)預(yù)處理

常用的數(shù)學(xué)函數(shù)

sum(x) 對(duì)x中的元素求加和,

prod(x)對(duì)x中的元素求乘積,

max(x)/min(x)求x中元素的最大值和最小值,

range(x)返回取值范圍,相當(dāng)于[min(x),max(x)],

length(x)返回x中元素的個(gè)數(shù),

median(x)返回x中元素的中位數(shù),

var(x)求x中元素的方差,

sd(x)求x中元素的標(biāo)準(zhǔn)差,

cov(x,y)求x和y的協(xié)方差,

cor(x,y)求x和y的相關(guān)系數(shù),

round(x,n)對(duì)x中的元素四舍五入,保留小數(shù)點(diǎn)后的第n位,

sort(x)/order(x)排序,默認(rèn)升序,

rev(x)對(duì)x中的元素取逆序,

unique(x)對(duì)x中重復(fù)的元素只取一個(gè),

table(x)統(tǒng)計(jì)x中完全相同的數(shù)據(jù)個(gè)數(shù)。

修改數(shù)據(jù)標(biāo)簽

names()函數(shù)可以獲取數(shù)據(jù)集的列標(biāo)簽,dimnames()[[1]]表示對(duì)行標(biāo)簽進(jìn)行操作如:dimnames()[[1]][1:3] = c("1","2","3")將數(shù)據(jù)的取1-3行的標(biāo)簽改為1-3,dimnames()[[2]]表示列。

缺失值的處理

> air_data = airquality[1:7,1:4]
> is.na(air_data)
  Ozone Solar.R  Wind  Temp
1 FALSE   FALSE FALSE FALSE
2 FALSE   FALSE FALSE FALSE
3 FALSE   FALSE FALSE FALSE
4 FALSE   FALSE FALSE FALSE
5  TRUE    TRUE FALSE FALSE
6 FALSE    TRUE FALSE FALSE
7 FALSE   FALSE FALSE FALSE
> sum(is.na(air_data))
[1] 3
> complete.cases(air_data)
[1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
> complete.cases(air_data$Ozone)
[1]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
is.na用來(lái)分析數(shù)據(jù)中是否含有缺失值,complete.cases則是判斷每一行是否有缺失值,當(dāng)數(shù)據(jù)量變大時(shí),利用aggr()函數(shù)進(jìn)行判斷。
> air_data = airquality[1:31,1:4]
> aggr(air_data, las = 1, numbers = T)

圖中的的小長(zhǎng)條的長(zhǎng)度表示各個(gè)變量的缺失數(shù)據(jù)的比例,可見(jiàn)wind和temp變量數(shù)據(jù)是完整的。

刪除缺失樣本

> data = air_data[complete.cases(air_data),]
> dim(data)
[1] 24  4
> data = na.omit(air_data)
> dim(data)
[1] 24  4

替換掉缺失值

用均值或者中位數(shù)去代替缺失值是通常的處理策略。

> air_data$Ozone[is.na(air_data$Ozone)] = median(air_data$Ozone[!is.na(air_data$Ozone)])

補(bǔ)充:R語(yǔ)言學(xué)習(xí)筆記--數(shù)據(jù)框輸出和查看

(1)將數(shù)據(jù)框C輸出為.csv文件

write.table(C,file="ABC.csv",sep = ",",row.names=FALSE)  

#ABC.csv將保存在R的工作目錄下,當(dāng)不加sep = " "時(shí),輸出的數(shù)據(jù)會(huì)在同一個(gè)單元格里,因此要加“,”。

(2)查看數(shù)據(jù)框C的行數(shù)和列數(shù)

行數(shù):length(C[1, ])

列數(shù):length(C[ ,1])

行數(shù)+列數(shù):dim(C)

(3)查看數(shù)據(jù)框C的變量名即列名

colnames(C)

(4)查看數(shù)據(jù)框C的變量x1中不同值的個(gè)數(shù)

length(unique(C$x1))

(5)在console里的不同的輸出方式

print()

cat ( )

換行的話加“\n”

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論