国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        R語言教程:數據結構+導入數據!

        2020-12-29 16:46
        科研菌
        關注

        with(mtcars, {  nokeepstats <- summary(mpg)  keepstats <<- summary(mpg)})nokeepstats   錯誤: 找不到對象'nokeepstats'keepstats Min. 1st Qu.  Median    Mean 3rd Qu.    Max.       10.40   15.43   19.20   20.09   22.80   33.90實例標識符

        病人編號(patientID)用于區分病例數據集中不同的個體。
        實例標識符(case identifier)可通過數據框操作函數中的rowname選項指定。

        patientdata<-data.frame(patientID, age, diabetes,                         status, row.names=patientID)

        將patientID指定為R中標記各類打印輸出和圖形中實例名稱所用的變量。

        6. 因子

        變量可歸結為名義型、有序型或連續型變量。

        名義型變量是沒有順序之分的類別變量

        有序型變量表示一種順序關系,而非數量關系

        連續型變量可以呈現為某個范圍內的任意值,并同時表示了順序和數量
        類別(名義型)變量和有序類別(有序型)變量在R中稱為因子(factor)。

        函數factor()以一個整數向量的形式存儲類別值,同時一個由字符串(原始值)組成的內部向量將映射到這些整數上。

        類別(名義型)變量diabetes <- c("Type1", "Type2", "Type1", "Type1")diabetes <- factor(diabetes)

        將此向量存儲為(1, 2, 1, 1),并在內部將其關聯為1=Type1和2=Type2(具體賦值根據字母順序而定)。向量diabetes仍是名義型變量,不是有序型變量。

        有序型變量

        需要為函數factor()指定參數ordered=TRUE。

        status <- c("Poor", "Improved", "Excellent", "Poor")status <- factor(status, ordered=TRUE)

        將向量編碼為(3, 2, 1, 3),并在內部將這些值關聯為1=Excellent、2=Improved以及3=Poor。

        對于字符型向量,因子的水平默認依字母順序創建。
        如果水平的順序和字母的順序不一致,則需要用指定levels選項來覆蓋默認排序。

        status <- factor(status, order=TRUE,                 levels=c("Poor", "Improved", "Excellent"))

        各水平的賦值將為1=Poor、2=Improved、3=Excellent,任何在數據中出現而未在參數中列舉的數據都將被設為缺失值。

        數值型變量

        可以用levels和labels參數來編碼成因子。

        例:如果男性被編碼成1,女性被編碼成2

        sex <- factor(sex, levels=c(1, 2), labels=c("Male", "Female"))

        將變量轉換成一個無序因子,性別將被當成類別型變量,標簽“Male”和“Female”將替代1和2在結果中輸出。

        因子的使用:

        #以向量形式輸入數據patientID <- c(1, 2, 3, 4)age <- c(25, 34, 28, 52)diabetes <- c("Type1", "Type2", "Type1", "Type1")status <- c("Poor", "Improved", "Excellent", "Poor")#指定為一個普通因子diabetes <- factor(diabetes)   #指定為一個有序型因子status <- factor(status, order=TRUE)         patientdata <- data.frame(patientID, age, diabetes, status
        #顯示對象的結構str(patientdata)'data.frame':  4 obs. of  4 variables:     $ patientID: num  1 2 3 4     $ age      : num  25 34 28 52     $ diabetes : Factor w/ 2 levels "Type1","Type2": 1 2 1 1                 $ status   : Ord.factor w/ 3 levels "Excellent"<"Improved"<..: 3 2 1 3  

        diabetes是一個因子;status是一個有序型因子。

        #顯示對象的統計概要summary(patientdata)   patientID         age         diabetes       status       Min.   :1.00   Min.   :25.00   Type1:3   Excellent:1       1st Qu.:1.75   1st Qu.:27.25   Type2:1   Improved :1       Median :2.50   Median :31.00             Poor     :2       Mean   :2.50   Mean   :34.75                               3rd Qu.:3.25   3rd Qu.:38.50                               Max.   :4.00   Max.   :52.00

        函數summary()會區別對待各個變量:

        顯示連續型變量age的最小值、最大值、均值和各四分位數;

        顯示類別型變量diabetes和status(各水平)的頻數值。

        7. 列表

        列表(list)是一些對象(或成分,component)的有序集合,某個列表中可能是若干向量、矩陣、數據框,甚至其他列表的組合。
        使用函數list()創建列表:

        mylist <- list(object1, object2, ...)

        可以為列表中的對象命名:

        mylist <- list(name1=object1, name2=object2, ...)

        創建一個列表:

        g <- "My First List"h <- c(25, 26, 18, 39)j <- matrix(1:10, nrow=5)k <- c("one", "two", "three")mylist <- list(title=g, ages=h, j, k)      #創建列表mylist                                     #輸出整個列表$title    [1] "My First List"
        $ages    [1] 25 26 18 39    
        [[3]]               [,1] [,2]    [1,]    1    6    [2,]    2    7    [3,]    3    8    [4,]    4    9    [5,]    5   10    
        [[4]]    [1] "one"   "two"   "three"
        mylist[[2]]                                #輸出第二個成分[1] 25 26 18 39mylist[["ages"]][1] 25 26 18 39

        雙重方括號中指明代表某個成分的數字或名稱訪問列表中的元素。

        注意事項

        對象名稱中的句點(.)沒有特殊意義
        R中用美元符號($)指定一個數據框或列表中的某些部分。

        將一個值賦給某個向量、矩陣、數組或列表中一個不存在的元素時,R將自動擴展這個數據結構以容納新值。

        x <- c(8, 6, 4)x[7] <- 10x            #通過賦值,向量x由三個元素擴展到了七個元素[1]  8  6  4 NA NA NA 10
        x <- x[1:3]  #重新將其縮減回三個元素x    [1] 8 6 4

        R中沒有標量。標量以單元素向量的形式出現。

        R中的下標不從0開始,而從1開始。在上述向量中,x[1]的值為8。

        變量無法被聲明。它們在首次被賦值時生成。

        2.2 數據輸入

        1. 鍵盤輸入數據文本編輯器

        edit()會自動調用一個允許手動輸入數據的文本編輯器。

        mydata <- data.frame(age=numeric(0), gender=character(0), weight=numeric(0))edit(mydata)         #通過圖2-1所示文本編輯器輸入數據,但結果并未保存  age gender weight    1  25      m    166    2  30      f    115    3  18      f    120    Warning message:    In edit.data.frame(mydata) : 在'gender'里加上了因子水準

        圖2-1 通過文本編輯器輸入數據

        mydata <- edit(mydata)  #編輯的結果需要賦值回對象本身,結果保存在mydata中mydata  age gender weight    1  25      m    166    2  30      f    115    3  18      f    120

        語句 mydata<-edit(mydata)的一種等價寫法是 fix(mydata)。

        直接嵌入數據集mydatatxt <- " age gender weight 25 m 166 30 f 115 18 f 120 "mydata <- read.table(header=TRUE, text=mydatatxt)   #read.table()函數被用于處理字符串并返回數據框

        鍵盤輸入數據的方式常用于處理小數據集。對于較大的數據集,可以從現有的文本文件、Excel電子表格、統計軟件或數據庫中導入數據。

        2. 從帶分隔符的文本文件導入數據

        可以使用read.table()從帶分隔符的文本文件中導入數據。其語法如下:
        mydataframe<-read.table(file,options)

        file是一個帶分隔符的ASCII文本文件

        options是控制如何處理數據的選項

        表2-1 函數read.table()的選項

        選項描述header一個表示文件是否在第一行包含了變量名的邏輯型變量sep

        分開數據值的分隔符

        默認是 sep="",這表示了一個或多個空格、制表符、換行或回車 sep=","讀取用逗號來分隔行內數據的文件

        sep=" "讀取使用制表符來分割行內數據的文件

        row.names一個用于指定一個或多個行標記符的可選參數col.names如果數據文件的第一行不包括變量名(header=FASLE),可以用 col.names 去指定一個包含變量名的字符向量colClasses可以對每一列都指定一個類(比如說,邏輯型、數值型、字符型或因子型)

        例:用逗號分隔的文本文件studentgrades.csv,包含了學生在數學、科學、和社會學習的分數。
        StudentID,First,Last,Math,Science,Social Studies
        011,Bob,Smith,90,80,67
        012,Jane,Weary,75,,80
        010,Dan,"Thornton, III",65,75,70
        040,Mary,"O'Leary",90,95,92

        setwd("~/目標文件所在文件夾")         #定位到目標文件所在文件夾grades <‐ read.table("studentgrades.csv", header=TRUE,    row.names="StudentID", sep=",")  grades                             #顯示導入數據   First          Last Math Science Social.Studies    11   Bob         Smith   90      80             67    12  Jane         Weary   75      NA             80    10   Dan Thornton, III   65      75             70    40  Mary       O'Leary   90      95             92
        str(grades)    'data.frame':  4 obs. of  5 variables:     $ First         : Factor w/ 4 levels "Bob","Dan","Jane",..: 1 3 2 4     $ Last          : Factor w/ 4 levels "O'Leary","Smith",..: 2 4 3 1     $ Math          : int  90 75 65 90     $ Science       : int  80 NA 75 95     $ Social.Studies: int  67 80 70 92

        注意:

        列StudentID現在是行名,不再有標簽,也失去了前置的0

        Dan的姓左右使用引號,避免Thornton和III之間的空格

        O’Leary左右使用引號,否則R會把單引號讀取為分隔符

        默認地,read.table()把字符變量轉化為因子,可以加上選項stringsAsFactors=FALSE避免出現這種情況

        可以用colClasses 選項去對每一列都指定一個類

        grades <- read.table("studentgrades.csv", header=TRUE,    row.names="StudentID", sep=",",    colClasses=c("character", "character", "character",                 "numeric", "numeric", "numeric"))grades            First          Last Math Science Social.Studies    011   Bob         Smith   90      80             67    012  Jane         Weary   75      NA             80    010   Dan Thornton, III   65      75             70    040  Mary       O'Leary   90      95             92
        str(grades)    'data.frame':  4 obs. of  5 variables:     $ First         : chr  "Bob" "Jane" "Dan" "Mary"     $ Last          : chr  "Smith" "Weary" "Thornton, III" "O'Leary"     $ Math          : num  90 75 65 90     $ Science       : num  80 NA 75 95     $ Social.Studies: num  67 80 70 92

        行名保留了前綴0,而且First和Last不再是因子;grades作為實數而不是整數來進行排序。
        可以用同樣的方法打開txt格式的文本文件。

        3. 導入Excel數據可以在Excel中將其導出為一個逗號分隔文件(csv),并使用前文描述的方式將其導入R中。可以用xlsx包直接導入

        首先需要安裝xlsx包,xlsxjars和rJava包,以及一個正常工作的Java 安裝(http://java.com)。
        函數read.xlsx()導入一個工作表到一個數據框中。格式是:
        read.xlsx(file,n)

        1. file是Excel工作簿的所在路徑

        2. n則為要導入的工作表序號

        例:從目標文件夾的studentgrades.xlsx中導入了第一個工作表,并將其保存為一個數據框mydataframe。

        library(xlsx)workbook <- "目標文件夾/studentgrades.xlsx"mydataframe <- read.xlsx(workbook, 1)

        R還可以從流行的統計軟件、特殊格式的文件、多種關系型數據庫管理系統、專業數據庫、網站和在線服務中導入數據。具體方法可參見原書。

        2.3 數據集的標注

        1. 變量標簽——為變量名添加描述性的標簽

        可以將變量標簽作為變量名,然后通過位置下標來訪問這個變量。

        names(patientdata)[2] <- "Age at hospitalization (in years)"patientdata  patientID Age at hospitalization (in years) diabetes    status    1         1                                25    Type1      Poor    2         2                                34    Type2  Improved    3         3                                28    Type1 Excellent    4         4                                52    Type1      Poor

        新的變量名太長,不適合重復輸入,可以使用patientdata[2]來引用這個變量。

        patientdata[2]        Age at hospitalization (in years)    1                                25    2                                34    3                                28    4                                522. 值標簽——為類別型變量中的編碼添加值標簽

        函數factor()可為類別型變量創建值標簽。

        patientdata$gender <- factor(patientdata$gender,                           levels = c(1,2),                           labels = c("male", "female"))

        levels代表變量的實際值

        labels表示包含了理想值標簽的字符型向量

        2.4 處理數據對象的實用函數

        表2-2 處理數據對象的實用函數

        函數用途length(object)顯示對象中元素/成分的數量dim(object)顯示某個對象的維度str(object)顯示某個對象的結構class(object)顯示某個對象的類或類型mode(object)顯示某個對象的模式names(object)顯示某對象中各成分的名稱c(object, object,...)將對象合并入一個向量cbind(object, object, ...)按列合并對象rbind(object, object, ...)按行合并對象object輸出某個對象head(object)列出某個對象的開始部分tail(object)列出某個對象的最后部分ls()顯示當前的對象列表rm(object, object, ...)刪除一個或更多個對象語句 rm(list = ls())將刪除當前工作環境中的幾乎所有對象newobject<- edit(object)編輯對象并另存為 newobjectfix(object)直接編輯對象

        <上一頁  1  2  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 国产九九| 亚洲AV一卡| 国产麻豆天美果冻无码视频| 熟女丝袜国产| 石棉县| 精品va在线观看| 大冶市| 精品视频99| 辛集市| 亚洲熟女1P| 国内自拍偷拍| 在线免费看av| 欧美又粗又大又爽| 亚洲19p| 制服丝袜在线亚洲| 国产精品成人无码A片噜噜| 欧美BBXX| H无码| 3p无码| 国产熟女视频| 天天射色综合| 午夜寂寞网站| 国产精品天天狠天天看| 中阳县| 亚洲成人黄色| 中文字幕在线无遮挡| 汕尾市| 国产精品调教| 精品国产一区二区三区四区| 互助| 色性av| 亚洲AV自拍| 太白县| www.91国产| 91高级网站| 长治县| 一本色道久久88亚洲精品| 国产熟女91熟女| 国产av影院| 海阳市| 伊人免费在线|