① R語言創建向量、數據框以及數據框的操作
創建向量時,先給向量命名,如letters,名字後加「<-符號,接著寫函數c(元素)」,如「letters <- c(a,b,c,2,5)」。輸入"<-"的方法:同時按「alt和-」或先按"<"再按"-"。
向量只有一行,向量里元素的數據類型操作:class(向量名稱[第幾列]),如下:
給數據框的各列及各行命名,輸入函數c(元素為數字直接輸入,每個元素之間用逗號隔開,英文單詞要加引號,再用逗號分開),按要求輸入數據框的函數後,記得要輸入數據框如resualtdata,才能在結果中把數據框的各行各列內容顯示出來。
對數據框的各行和各列進的名稱修改時,方法:rownames(數據框名字)<-(各列名之間要用引號,列名之間用逗號隔開),colnames(數據框名字)<-(各行名之間要用引號,行名之間用逗號隔開),最後再把數據框名字寫上後運行。
第一種方法,class(數據框名稱[,第幾列]),第幾行的數字是空白的;同理,確定數據框中各行的數據類型,class(數據框名稱[第幾行,]),第幾列的數字是空白的。第二種方法,class(數據框名稱$第幾列的名稱),如下。
or
方法1:數據框名稱 [第幾行,第幾列];
方法2:數據框名稱["第幾行對應的名稱","第幾列對應的名稱"],此方法相應的行名和列名一定要加雙引號,否者運行是錯誤的。
4行6列:矩陣名稱<-matrix(1:24,nrow=4,ncol=6)
5行4列:矩陣名稱<-matrix(1:20,nrow=5,ncol=4)
參考在數據框中更改各行各列命名的方法,注意的是,輸入命名的函數後,運行不要從原始矩陣函數開始,不然會一直默認,應從矩陣名稱開始,或者輸入更改各行和各列的函數後,再輸入矩陣名稱,之後運行即可。
參考數據框的方法,同樣也要注意在使用X["D3","E2"]方法時,一定要給具體的行和列的名稱加引號。
在使用R語言時,輸入的字母,符號一定是用英文版,當命令發生錯誤時,要仔細核對,是不是格式出現錯誤,顯示不出結果時,輸入相應的函數後,是不是沒有輸入數據框或矩陣。
將作業寫至郵件 [email protected] ,抄送 [email protected]
② 如何用R語言在數據中提取指定列數據,並且形成一個新的數據表
最簡單的方法,數據框的名稱,加上你要提取的列數,示例如下:
需要注意的是,如果只提取單列的話,得到的數據就變成了一個vector,而不再是dataframe的格式了。
③ R語言自學筆記-2內置數據集
#b站視頻——R語言入門與數據分析
#內置數據集
#固定格式的數據(矩陣、數據框或一個時間序列等)
#統計建模、回歸分析等試驗需要找合適的數據集
#R內置數據集,存儲在,通過
help(package="datasets")
#通過data函數訪問這些數據集
data()
#得到新窗口 前面:數據集名字 後面:內容
#包含R所有用到的數據類型,包括:向量、矩陣、列表、因子、數據框以及時間序列等
#直接輸入數據集的名字就可以直接使用這些數據集
#輸出一個向量
rivers
#是北美141條河流長度
#這些數據集的名字都是內置的,一般我們在給變數命名時最好不要重復
#否則數據集在當前對話中會被置換掉
#例如
rivers<-c(1,2,3)
rivers
#不過影響不大
#再使用data函數重新載入這個數據集就可以了
data("rivers")
rivers
#一些常用內置數據集
#默認介紹頁面只有名字和介紹,並沒有給出數據分類
#哪些是向量、矩陣、數據框等?
#查看數據集除了直接敲數據集名字顯示數據之外
#還可以使用help函數查看每個數據集具體的內容
help("mtcars")
euro
#歐元匯率,長度為11,每個元素都有命名
#輸出向量的屬性信息
names(euro)
#將5個數據構成一個數據框
向量
state.abb #美國50個州的雙字母縮寫
state.area #美國50個州的面積
state.name #美國50個州的全稱
因子
state.division #美國50個州的分類,9個類別
state.region #美國50個州的地理分類
#
state<-data.frame(state.name,state.abb,state.area,state.division,state.region)
state
state.x77 #美國50個州的八個指標
state.x77
VADeaths #1940年弗吉尼亞州死亡率(每千人)
volcano #某火山區的地理信息(10米×10米的網格)
WorldPhones #8個區域在7個年份的電話總數
iris3 #3種鳶尾花形態數據
#以上矩陣→適合畫熱圖
heatmap(volcano)
#這里只是作為一個演示,還需要對這個圖進行一些調整
#更復雜的數據結構
Titanic #泰坦尼克乘員統計,是一個數組
UCBAdmissions #伯克利分校1973年院系、錄取和性別的頻數
crimtab #3000個男性罪犯左手中指長度和身高關系
HairEyeColor #592人頭發顏色、眼睛顏色和性別的頻數
occupationalStatus #英國男性父子職業聯系
#類矩陣
eurodist #歐洲12個城市的距離矩陣,只有下三角部分
Harman23.cor #305個女孩八個形態指標的相關系數矩陣
Harman74.cor #145個兒童24個心理指標的相關系數矩陣
#R中內置最多的數據集——數據框
cars #1920年代汽車速度對剎車距離的影響
iris #3種鳶尾花形態數據
mtcars #32輛汽車在11個指標上的數據
rock #48塊石頭的形態數據
sleep #兩葯物的催眠效果
swiss #瑞士生育率和社會經濟指標
trees #樹木形態指標
USArrests #美國50個州的四個犯罪率指標
women #15名女性的身高和體重
#列表
state.center #美國50個州中心的經度和緯度
#類數據框
Orange #桔子樹生長數據
#時間序列數據,和數據框類似,不同的是具有時間序列的順序,是數據分析中非常常見的格式
#能反映出變化情況以及變化的趨勢等
#因此有很多專門的方法用於時間序列的數據分析
co2 #1959-1997年每月大氣co2濃度(ppm)
presidents #1945-1974年每季度美國總統支持率
uspop #1790–1970美國每十年一次的人口總數(百萬為單位)
#除了內置數據集之外,許多R擴展包中也內置了很多數據集
#這些數據集作為擴展包的函數使用的案例
#載入R包之後這些數據集也同樣被載入進來
#例如MASS包中的Cars93數據
#包含了27個變數,是1993年93輛汽車的型號指標
install.packages("MASS")
library("MASS")
help("Cars93")
#使用data函數在參數package中等於對應R包的名字,即可列出每個R包中包含的數據集
#ex
data(package="MASS")
#顯示R中所有可用的數據集
data(package=.packages(all.available = TRUE))
#不載入R包使用其中的數據集
data(Chile,package="car")
Chile
#> data(Chile,package="car")
#Warning message:
# In data(Chile, package = "car") : data set 『Chile』 not found
#> Chile
#Error: object 'Chile' not found
install.packages("car")
library("car")
help("Chile")
④ R語言之創建數據集
R語言之創建數據集
數據集通常是由數據構成的一個矩形數組,行表示觀測,列表示變數。
R中有許多用於存儲數據的結構,包括標量、向量、數組、數據框和列表。
在R中,對象(object)是指可以賦值給變數的任何事物,包括常量、數據結構、函數、甚至是圖形。因子(factor)是名義型變數或有序型變數,在R中被特殊地存儲和處理。
R中的數據結構:
1.1向量
向量是用於存儲數值型、字元型或邏輯型數據的一維數組。創建向量使用函數c(),如下例所示:
數值型向量:a<-c(1,2,5,3,6,-2,4)
字元型向量:b<-c("one","two","three")
邏輯型向量:c<-c(TRUE,TRUE,TRUE,FALSE,TRUE)
註:單個向量中的數據必須擁有相同的類型或模式。
標量是只含一個元素的向量,例如f<-3、g<-"US"和h<-TRUE。它們用於保存常量。
訪問向量中的元素,可在方括弧中給定元素所處位置的數值,如:a[c(2,4)]用於訪問向量a中的第二個和第四個元 素。
1.2矩陣
矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字元型或邏輯型),可以通過matrix創建矩陣
一般使用格式為:
mymatrix<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(
char_vector_rownames,char_vector_colnames)) ,其中vector包含了矩陣的元素,nrow和ncol用以指定
行和列的維數,dimnames包含了可選的以字元型向量表示的行名和列名。選項byrow則表明矩陣應當按行
填充(byrow=TRUE)還是按列填充(byrow=FALSE),默認情況下按列填充。代碼演示如下:
[plain] view plain
> cells<-c(1,23,56,485)
> rnames<-c("R1","R2")
> cnames<-c("c1","c2")
[plain] view plain
<pre name="code" class="html">> mymatrix<-matrix(cells ,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))
> mymatrix
c1 c2
R1 1 23
R2 56 485
1.3數組
數組與矩陣類似,但是維數可以大於2。數組可通過array函數創建,形式如下:
myarray<-array(vector,dimensions,dimnames),其中vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,而dimnames是可選的、各維度名稱標簽的列表。代碼如下:
[html] view plain
> dim<-c("A1","A2")
> dim1<-c("A1","A2")
> dim2<-c("B1","B2","B3")
> dim3<-c("C1","C2","C3","C4")
> z<-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))
> z
, , C1
B1 B2 B3
A1 1 3 5
A2 2 4 6
, , C2
B1 B2 B3
A1 7 9 11
A2 8 10 12
, , C3
B1 B2 B3
A1 13 15 17
A2 14 16 18
, , C4
B1 B2 B3
A1 19 21 23
A2 20 22 24
1.4數據框
數據框中不同的列可以包含不同模式(數值型、字元型等)的數據,是R中最常處理的數據結構。數據框可以通過函數data.frame()創建:mydata<-data.frame(col1,col2,col3,...),其中的列向量col1,col2,col3,...可為任何類型(如字元型、數值型或邏輯型)。每一列的名稱可由函數names指定。代碼如下:
[html] view plain
> age<-c(25,34,28,53)
> patientID<-c(1,2,3,4)
> diabetes<-c("Type1","Type2","Type1","Type1")
> status<-c("Poor","Improved","Excellent","Poor")
> patientdata<-data.frame(patientID,age,diabetes,status)
> patientdata
patientID age diabetes status
1 1 25 Type1 Poor
2 2 34 Type2 Improved
3 3 28 Type1 Excellent
4 4 53 Type1 Poor
> patientdata$age
[1] 25 34 28 53
<pre name="code" class="html">> table(patientdata$diabetes,patientdata$status)
Excellent Improved Poor
Type1 1 0 2
Type2 0 1 0
$被用來選取一個給定數據框中的某個特定變數,上面table(patientdata$diabetes,patientdata$status)生成了 diabetes和status的列聯表。
函數attach()可將數據框添加到R的搜索路徑中。
函數detach()將數據框從搜素路徑中移除。
相對於attach。多數的R書籍更推薦使用函數with()。
1.5因子
變數可歸結為名義型、有序型或連續型變數。類別(名義型)變數和有序類別(有序型)變數在R中稱為因子。因子在R中非常重要,因為它決定了數據的分析方式以及如何進行視覺呈現。
函數factor()以一個整數向量的形式存儲類別值,整數的取值范圍是[1...k](其中k是名義變數中唯一值得個數),同時一個由字元串(原始值)組成的內部向量將映射到這些整數上。
名義型eg:假設有向量:diabetes<-c("Type1","Type2","Type1","Type1")
語句diabetes<-factor(diabetes)將此向量存儲為(1,2,1,1).
有序型eg: 對於給定變數status<-c("Poor","Improved","Excellent","Poor")
語句status<-factor(status,ordered=TRUE)會將向量編碼為(3,2,1,3)。
1.6列表(list)
列表是R的數據類型中最為復雜的一種。列表就是一些對象的(或成分,component)的有序集合。列表允許你整合若干(可能無關)的對象到單個對象名下。例如,某個列表中可能是若干向量、矩陣、數據框,甚至是其他列表的組合。可以使用函數list()創建列表:
mylist<-list(object1,object2,...)
註:列表成為了R中的重要數據結構。
1.列表允許以一種簡單的方式組織和重新調用不相乾的信息;
2.許多R函數的運行結果都是以列表的形式返回的。
⑤ R語言里如何生成數據統計數據框
你可以利用dplyr包進行計算,假設你的數據名為:yourdata
data <- yourdata[,c("siteNO","user","check")]
library(dplyr)
by_siteNO_USER <- group_by(data,siteNO,user)
need <- summary(by_siteNO_user,
mean =mean(check),
median=median(check))