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

R語(yǔ)言學(xué)習(xí)數(shù)據(jù)獲取操作示例詳解

 更新時(shí)間:2023年08月23日 15:39:33   作者:YOLO  
這篇文章主要為大家介紹了R語(yǔ)言學(xué)習(xí)數(shù)據(jù)獲取操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

簡(jiǎn)介

實(shí)際上,R 中有大量的內(nèi)置數(shù)據(jù)集可用于分析和實(shí)踐,我們也可以在R 中創(chuàng)建模擬特定分布的數(shù)據(jù)。而在實(shí)際工作中,數(shù)據(jù)分析者更多時(shí)候面對(duì)的是來(lái)自多種數(shù)據(jù)源的外部數(shù)據(jù),即各式各樣擴(kuò)展名的數(shù)據(jù)文件,如 .txt、.csv、.xlsx、.xls 等。不同擴(kuò)展名的文件代表不同的文件格式,這常常會(huì)給分析者帶來(lái)困擾。

R 提供了適用范圍廣泛的數(shù)據(jù)導(dǎo)入工具。

1.獲取內(nèi)置數(shù)據(jù)集

R 中的內(nèi)置數(shù)據(jù)集存在于各個(gè)包中,其中基本包 datasets 里只有數(shù)據(jù)集,沒(méi)有函數(shù)。這個(gè)包提供了近 100 個(gè)數(shù)據(jù)集,涵蓋醫(yī)學(xué)、自然、社會(huì)學(xué)等各個(gè)領(lǐng)域。

你可以用下面的命令進(jìn)行查看:

data(package = "datasets")

如果想要調(diào)用某個(gè)數(shù)據(jù)集,可以使用 data( ) 函數(shù)。運(yùn)行下面的命令,R 會(huì)加載數(shù)據(jù)集 iris 到工作空間。

data(iris)

除了 datasets 包,R 中很多其他的包也帶有數(shù)據(jù)集。如果不是運(yùn)行 R 后自動(dòng)加載的基本包,我們需要安裝和加載這些包以后才能使用其中的數(shù)據(jù)。下面以 MASS 包里的數(shù)據(jù)集 bacteria 為例說(shuō)明數(shù)據(jù)的調(diào)用過(guò)程:

library(MASS)
data(bacteria)

2. 模擬特定分布的數(shù)據(jù)

R 提供了一系列可以用于數(shù)值模擬的函數(shù)。這些函數(shù)以 r 開頭,常用的有:rnorm( )、runif( )、rbinom( )和 rpois( ) 等。例如:

# 后續(xù)可視化部分會(huì)詳細(xì)介紹直方圖
r1 <- rnorm(n = 100, mean = 0, sd = 1)
# head(r1) # 取前 5 個(gè)值看看
hist(r1)
r2 <- runif(n = 10000, min = 0, max = 100)
hist(r2)
r3 <- rbinom(n = 80, size = 100, prob = 0.1)
hist(r3)
r4 <- rpois(n = 50, lambda = 1)
hist(r4)

3. 獲取其他格式的數(shù)據(jù)

3.1 txt 與csv 格式

如果數(shù)據(jù)來(lái)源是一個(gè)用 Windows 記事本或其他純文本編輯器所創(chuàng)建的 ASCII 格式文件,我們可以使用函數(shù) read.table( ) 讀取其中的數(shù)據(jù),返回的是一個(gè)數(shù)據(jù)框。

例如,假設(shè)創(chuàng)建的數(shù)據(jù)框 patients 的數(shù)據(jù)文件 patients.txt 存放于當(dāng)前工作目錄下,我們可以使用下面的命令讀取該數(shù)據(jù):

# getwd() # 獲取當(dāng)前工作目錄
# 臨時(shí)創(chuàng)建下 patients.txt 數(shù)據(jù)文件
ID <- 1:5
sex <- c("male", "female", "male", "female", "male")
age <- c(25, 34, 38, 28, 52)
pain <- c(1, 3, 2, 2, 3)      
pain.f <- factor(pain, levels = 1:3, labels = c("mild", "medium", "severe"))   
patients <- data.frame(ID, sex, age, pain.f)
write.table(patients, "patients.txt", row.names = FALSE)
patients.data <- read.table("patients.txt", header = TRUE)
patients.data

在電子表格和數(shù)據(jù)庫(kù)應(yīng)用中經(jīng)常會(huì)生成帶分隔符的文本文件,其中 .csv 文件是用逗號(hào)分隔取值(Comma Separated Values)。函數(shù) read.csv( ) 是函數(shù) read.table( ) 的一個(gè)變體,專用于讀取 .csv 文件。

read.table ( ) 和 read.csv ( ) 兩個(gè)函數(shù)中參數(shù)的默認(rèn)值是不同的。

在函數(shù) read.table ( ) 中,參數(shù) header 默認(rèn)值為 FALSE,即認(rèn)為文件第一行開始就是數(shù)據(jù)而非變量名。

而在函數(shù) read.csv ( ) 中,參數(shù) header 默認(rèn)值為 TRUE。因此,在讀入數(shù)據(jù)前,建議先打開原始文件進(jìn)行查看,然后設(shè)置恰當(dāng)?shù)膮?shù)正確地讀入數(shù)據(jù)。

write.csv(patients, "patients.csv", row.names=FALSE)
patients.data <- read.csv("patients.csv")
patients.data

3.2 xls 或 xlsx 格式

讀取電子表格數(shù)據(jù)有很多種方式,其中最簡(jiǎn)單的方式是在 Excel 中將數(shù)據(jù)文件另存為一個(gè)逗號(hào)分隔(.csv)文件,然后用上述讀取.csv 文件的方法將其讀入R。還可以借助第三方包(例如 openxlsx 包、readxl 包和 gdata 包)直接讀取 xlsx 或 xls 格式的數(shù)據(jù)文件。

以 openxlsx 包為例:

library(openxlsx)
write.xlsx(patients, "patients.xlsx")
patients.data <- read.xlsx("patients.xlsx", sheet = 1)
patients.data

3.3 導(dǎo)入其他統(tǒng)計(jì)軟件的數(shù)據(jù)

有時(shí)我們需要讀取其他統(tǒng)計(jì)軟件產(chǎn)生的數(shù)據(jù),如 SPSS、SAS、Stata、Minitab 等。一種方法是從其他統(tǒng)計(jì)軟件將數(shù)據(jù)輸出為文本文件,然后使用函數(shù) read.table( ) 或 read.csv( ) 將數(shù)據(jù)讀入 R。另一種方法是借助擴(kuò)展包,比如 foreign 包,該包的主要功能就是讀寫其他統(tǒng)計(jì)軟件的數(shù)據(jù)。

下面以導(dǎo)入 SPSS 數(shù)據(jù)文件為例進(jìn)行說(shuō)明。

假設(shè)數(shù)據(jù)文件 patients.sav 存放于當(dāng)前工作目錄下,我們可以使用下面的命令將該數(shù)據(jù)集讀入 R:

# 為了節(jié)約附件數(shù)量,讓我們直接從下載到工作區(qū)
URL <- "http://download.kesci.com/qlhatmok4/patients.sav"
download.file(URL, destfile = "./patients.sav", method="curl")
library(foreign)
# 函數(shù) `read.spss( )` 中的參數(shù) `to.data.frame` 默認(rèn)為 FALSE,如果不設(shè)置為 TRUE,返回的將是一個(gè)列表形式數(shù)據(jù)。
patients.data <- read.spss("patients.sav" , to.data.frame = TRUE)
patients.data

用 foreign 包導(dǎo)入SAS、Stata 等軟件的數(shù)據(jù)文件的過(guò)程與上面類似,具體請(qǐng)查閱文檔。

4.數(shù)據(jù)錄入

在 R 中可以直接輸入數(shù)據(jù),但是如果數(shù)據(jù)量較大(超過(guò) 10 列或超過(guò) 30 行),在 R 里錄入數(shù)據(jù)并不是一個(gè)最佳選擇。我們可以選擇電子表格軟件錄入小規(guī)模的數(shù)據(jù),比如 Excel。

但是如果數(shù)據(jù)量很大,使用電子表格軟件手工錄入數(shù)據(jù)的出錯(cuò)概率也較大。這時(shí),專門為數(shù)據(jù)錄入而設(shè)計(jì)的程序軟件更為合適,比如免費(fèi)的軟件 EpiData。該軟件不僅可以方便地設(shè)置數(shù)據(jù)錄入的約束條件,比如范圍檢查、自動(dòng)換行等,還可以對(duì)每個(gè)變量和變量值添加標(biāo)簽。

foreign 包里的函數(shù) read.epiinfo( ) 可以直接讀取 EpiData 生成的 .rec 文件,但是建議先在 EpiData 中將錄入的數(shù)據(jù)導(dǎo)出為 Stata 數(shù)據(jù)文件,然后在 R 中使用函數(shù) read.dta( ) 讀入數(shù)據(jù)。這樣做的好處是可以保留在 EpiData 中預(yù)設(shè)的變量的屬性,例如變量標(biāo)簽和描述等。

以上就是R語(yǔ)言學(xué)習(xí)數(shù)據(jù)獲取操作示例詳解的詳細(xì)內(nèi)容,更多關(guān)于R語(yǔ)言數(shù)據(jù)獲取操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論