麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > R > 正文

R語言中數據對象之數據框的使用

2023-05-01 13:45:47
字體:
來源:轉載
供稿:網友

在R語言中,數據框(Dataframe)是一個非常重要的數據結構,其組織數據的結構與矩陣相似,但是其各列的數據類型可以不相同。一般情況,數據框的每列是一個變量,每行是一個觀測樣本。

雖然,數據框內不同的列可以是不同的數據模式,但是數據框內每列的長度必須相同。

1、創建數據框

在R語言中,數據框使用data.frame()函數來創建,其格式如下:

data.frame(col1,col2,..., row.name=NULL, check.rows = FALSE,check.names=TRUE,stringsAsFactors = default.stringsAsFactors())

其中,row.name用于指定各行(樣本)的名稱,默認沒有名稱,使用從1開始自增的序列來標識每一行;check.rows用于用來檢查行的名稱和數量是否一致,默認為FALSE;check.names來檢查變量(列)的名稱是否唯一且符合語法,默認為TRUE;用來描述是否將字符型向量自動轉換為因子,默認轉換,若不改變的話使用stringsAsFactors = FALSE來指定即可。

(1)df1<-data.frame(name=c("王宏", "馬蘭", "劉濤", "張峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93))

(2)df2<-data.frame(name=c("王宏", "馬蘭", "劉濤", "張峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93), row.names=c("s1", "s2", "s3", "s4"))

(3)

name <- c("王宏", "馬蘭", "劉濤", "張峰")  #向量

sex <- c("男", "女", "男", "男")  #向量

score <- c(90, 85, 82, 93)   #向量

df3<-data.frame(name, sex, score)  #使用向量生成數據框

以上的執行情況如下圖所示,(若圖較小,可以點擊查看大圖)

數據框的定義

(4)lst<-list(name=c("王宏","馬蘭","劉濤","張峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93))

df4<-as.data.frame(lst)

本部分執行代碼如下圖所示,(若圖較小,請點擊看大圖)

R語言中使用列表生成數據框

(5)arr1 <- array(1:12,c(4,3))

         df5 <- as.data.frame(arr1)   #使用數組生成數據框

         arr2<- array(1:12, c(4,3),dimnames=list(c("R1","R2","R3","R4"), c("C1","C2","C3")))

         df6 <- as.data.frame(arr2)

本部分執行情況如下圖所示:

R語言中使用數組生成數據框的方法

(6) m1 <- matrix(c(1:12),nr=3)

df7<-as.data.frame(m1)

m2<-matrix(c(1:12),nr=3,dimnames=list(c("R1","R2","R3")))

df8<-as.data.frame(m2)

m3<-matrix(c(1:12),nr=3,dimnames=list(c(),c("C1","C2","C3","C4")))

df9<-as.data.frame(m3)

本部分的執行情況如下:

在使用數組,矩陣生成數據框時,若沒有指定列名,則以"V1","V2”......進行代替。

2、數據框的引用

(1)df1["score"]   #仍為一個數據框, 也是一個列表

(2)df1[,"score"]  #返回的是向量

(3)df1[3]   #同(1)

(4)df1[,3]  #同(2)

(5)df1[c(1,3)]  #返回第1列和第3列的數據

以上執行情況如下圖所示:

R語言中數據框的引用

(6)df1[c(1,3),]  #返回第1行和第3行的數據

(7)df1[c(1,3),c(2,3)]  #返回第1行和第3行與第2列和第3列交叉處的數據

(8)df1$name  #以因子的形式返回name列

(9)df1[["name"]]  #以因子的形式返回name列

(10)df1[[1]][1]  #返回第1分量的第一個元素值,王宏

(11)df1[['name']][1]  #返回name分量第一個元素值:王宏

(12)df1$name[1]  #返回name分量第一個元素值:王宏

3、數據框的修改

(1)增加樣本數據或變量

可以使用rbind()函數和cbind()函數將新行或新列添加到數據框變量中。

lst1<-list("馬宇","男",92)  #創建一個新列表

df1<-rbind(df1,lst1)  #將列表lst1添加到df1中

lst2<-list(height=c(170,178,185,190,178,175))  #創建一個新列表,保存身高

df1<-cbind(df1,lst2)   #使用cbind將lst2添加到df1中

本部分執行情況如下圖所示:

R語言 中為數據框添加行或列

(2)修改某列的某一個值

df1$name[1] <- "王宏偉"  #將王宏的值修改為王宏偉

df1[1,2] <- "女"  #將第一行第2列的值修改為“女”

df1[[1]][2]<-"馬蘭蘭"  #將第一列第二個值改為“馬蘭蘭”

(3)刪除行或列

df1<-df1[-2,]   #刪除第2行數據

df1<-df1[,-4]  #刪除第4列的數據

df1<-df1[-c(1,3),]  #刪除第1行和第3行的數據

df1<-df1[,-c(1,4)]  #刪除第1列和第4列的數據

本部分(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级片免费在线 | 老师你怎么会在这第2季出现 | 蜜桃网在线 | a网站在线 | 黄色男女视频 | 双性精h调教灌尿打屁股的文案 | 香蕉秀| 精品国产欧美一区二区 | av免费在线不卡 | 久久亚洲线观看视频 | free korean xxxxhd| 成人性视频欧美一区二区三区 | 久久精品视频3 | 黄网站在线免费 | 国产伦久视频免费观看视频 | 欧产日产国产精品乱噜噜 | 欧美日韩在线中文字幕 | 欧美一级高潮 | 亚洲精品午夜电影 | 久久免费精品 | 777zyz色资源站在线观看 | 成人国产精品久久久 | 成年免费在线视频 | 北京一级毛片 | 91 在线视频观看 | 91av久久| 久久99久久98精品免观看软件 | 羞羞视频免费网站男男 | 成人黄色小视频网站 | 精品一区二区久久久 | 成人午夜亚洲 | 激情久久免费视频 | 欧美a v在线 | xxxxhd73国产 | 国产精品一区二区三区在线播放 | 九九看片| tube69xxxxxhd| 最近中文字幕一区二区 | 欧美aaa| 国内精品伊人久久久久网站 | 激情91 |