亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

R本身已經(jīng)提供了超過50個數(shù)據(jù)集,而在眾多功能包中,默認的數(shù)據(jù)集被存放在datasets程序包中,通過函數(shù)data()k可以查看系統(tǒng)提供所有的數(shù)據(jù)包,同時可以通過函數(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 = "."用來表示小數(shù)點的字符,

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

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

處理其他格式的軟件

當數(shù)據(jù)量較少時,在EXCEL中復制好要用的數(shù)據(jù)然后導入到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

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

讀取來自網(wǎng)頁的數(shù)據(jù)

在實際的應用中,從網(wǎng)站上直接獲取數(shù)據(jù)也是非常常見的,例如國家統(tǒng)計局官方發(fā)布的權(quán)威統(tǒng)計數(shù)據(jù),中國人民銀行網(wǎng)站發(fā)布的經(jīng)濟數(shù)據(jù)或其他專業(yè)財經(jīng)網(wǎng)站提供的股市、期貨、債券數(shù)據(jù)都是進行宏觀數(shù)據(jù)分析工作時常用的數(shù)據(jù)源。R讀取網(wǎng)頁中的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)頁地址,which是返回網(wǎng)頁中的那幾個表格,注意如果網(wǎng)址較長沒在輸入時需要換行,使用函數(shù)gsub將字符中的換行符刪去。

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

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

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

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

參數(shù)file指定了輸出的文件名,若文件已存在則原來的內(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)

更常用的寫文件方式是把一個矩陣或者數(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ù)預處理

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

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

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

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

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

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

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

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

sd(x)求x中元素的標準差,

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

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

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

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

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

unique(x)對x中重復的元素只取一個,

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

修改數(shù)據(jù)標簽

names()函數(shù)可以獲取數(shù)據(jù)集的列標簽,dimnames()[[1]]表示對行標簽進行操作如:dimnames()[[1]][1:3] = c("1","2","3")將數(shù)據(jù)的取1-3行的標簽改為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用來分析數(shù)據(jù)中是否含有缺失值,complete.cases則是判斷每一行是否有缺失值,當數(shù)據(jù)量變大時,利用aggr()函數(shù)進行判斷。
> air_data = airquality[1:31,1:4]
> aggr(air_data, las = 1, numbers = T)

圖中的的小長條的長度表示各個變量的缺失數(shù)據(jù)的比例,可見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)])

補充:R語言學習筆記--數(shù)據(jù)框輸出和查看

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

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

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

(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中不同值的個數(shù)

length(unique(C$x1))

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

print()

cat ( )

換行的話加“\n”

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

相關文章

最新評論