国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > 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列的數據

本部分(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 星座| 寿宁县| 株洲市| 罗江县| 雷州市| 永寿县| 阜宁县| 云霄县| 泌阳县| 湄潭县| 安远县| 丹江口市| 府谷县| 尼勒克县| 石屏县| 黄陵县| 光泽县| 武乡县| 汉阴县| 江都市| 新源县| 惠来县| 六安市| 高邮市| 佛山市| 堆龙德庆县| 河南省| 玛曲县| 三明市| 东光县| 磐安县| 嘉荫县| 勃利县| 沙河市| 天气| 淮阳县| 景谷| 屏南县| 星子县| 舒城县| 宜春市|