R語言中的數據對象和操作說明的編排
2.1數據對象和類型
由R語言創建和控制的實體稱為對象。
Ls()命令查看當前系統中的數據對象。
r對象的名稱必須以英文字母開頭,由壹串大小寫字母、數字或小時組成。
註意:r區分大小寫。
不要使用R的內置函數的名稱作為數據對象的名稱,如C、length等。
2.2數據對象類型
R語言的對象包括
數字:實數,可以寫成整數、小數和科學記數法。
邏輯):T(真:T(真)或F(假)
字符:夾在“”或”之間
復雜:形狀為a+bi。
Raw:以二進制形式保存數據。
缺失值:壹些統計數據不完整。當壹個元素或值在統計期間“不可用”或“缺少值”時,可以保留相關位置並給定特定的n a值(不可用),任何NA操作的結果都是NA。
用於識別和轉換數據對象類型的函數:
判別變換
字符為。字符()為,字符()
復雜的
兩倍
整數
邏輯學的
鈉
數字的
2.3數據對象構建
R語言中有六種主要的數據對象結構:向量、矩陣、數組、列表、數據幀和因子。
2.3.1 vector是基本類型相同的元素序列,相當於壹維數組。
由五個數值組成的向量x,這是由函數c()完成的賦值語句,其中c()可以有任意數量的參數,輸出值是這些參數首尾相連形成的向量。
除“““=“以外的r的賦值符號
例如:
& gtc(1,3,5,7,9)-》;y
& gty
[1] 2 5 8 3
& gtz = c(1,3,5,7,9)
& gtz
[1] 1 3 5 7 9
函數的作用是:給壹個向量賦值。
Length():可以返回向量的長度。
Mode()返回向量的數據類型。
正則序列用“:”標記,可以產生正則正則序列(:具有最高的運算級別)。
函數seq()生成各種規則序列。
seq(from,to,by)from給出序列的起始值,to表示序列的結束值,by表示步長(省略by時,表示步長值為1)。
& gtseq(1,10,2)
[1] 1 3 5 7 9
& gt序列(1,10)
[1] 1 2 3 4 5 6 7 8 9 10
有時我們註意序列的長度,使用語法:seq(下界,by=,長度=)
& gtseq(1,by=2,長度=10)
[1] 1 3 5 7 9 11 13 15 17 19
rep(x,times,...)x表示要重復的對象,times表示重復的次數。
& gtrep(c(1,3,4)
[1] 1 3 1 3 1 3 1 3
& gtrep(c(1,3),each=4)
[1] 1 1 1 1 3 3 3 3
對每個元素重復;
r中的內置函數:
Mean()顯示向量的平均值。
Median()要求數字。
風險值方差()
Sd()求標準差
Sort()排序向量。
Rev()按原始方向的相反方向排列向量。
Rank()給出向量的等級。
Prod()尋找向量連通積
Append()向向量添加元素。
矢量運算的常用函數表
功能用法
Sum()求和
Max()求最大值。
Min()查找最小值
範圍()查找範圍(總力矩)
Mean()求平均值。
尋找中值
風險值方差()
Sd()求標準差
排序()排序
反向排序
排名()尋求排名
Append()添加
替換()替換
匹配()匹配
Pmatch()部分匹配
All()判斷所有
Any()判斷部分
產品(產品)
矩陣
矩陣是按行和列排列數據的矩形表格。它是壹個二維數組,其單元格必須是相同的數據類型。通常,列用於表示不同的變量,行用於表示各種對象。
它的語法是:
矩陣(data=NA,ncol=1,byrow-=FALSE,dimnames=NULL)
需要數據和其他幾個選擇參數。
Nrow表示矩陣中的行數。
Ncol表示矩陣的列數。
Byrow默認為FALSE,這意味著矩陣是按列排列的;如果設置為t,則表示按行排列;
Dimnames可以更改矩陣行和列的名稱。
Diag()函數生成對角矩陣。
Diag()是壹個特殊的函數,它在數據是向量時生成對角矩陣,但在數據是矩陣時返回對角元素。
單位矩陣也可以由函數diag()生成。
當我們生成壹個矩陣時,如果我們想訪問矩陣的壹個元素或壹行(列),我們可以以A【I,j】的形式獲得相應的索引矩陣。
矩陣可以進行加減乘除運算,但在運算時要註意行數和列數的限制。
R中的A*B不是指矩陣乘法,而只是指矩陣對應元素的乘法。
矩陣乘法應用A%*%B
Dim()返回矩陣的行數和列數。
Nrow()返回矩陣中的行數。
Ncol()返回矩陣的列數。
Solve()返回矩陣的逆矩陣。
矩陣運算的常用函數
功能用法
As.matrix()將非矩陣轉換為矩陣。
Is.matrix()區分它是否是矩陣。
Diag()返回對角元素或生成對角矩陣。
求特征值和特征向量
求解()以找到逆矩陣
CHOL的Choleski分解
奇異值分解
Qr分解
Det()尋找行列式
Dim()返回行數和列數。
矩陣轉置
Apply()將函數應用於矩陣。
r語言還提供了計算矩陣的行或列的函數。
例如,colSUms()對矩陣的列求和,colMeans()求矩陣各列的平均值。
類似地,還有row sums()row means()
更通用的方法:
Apply()函數對每行和每列進行操作。
語法是:apply(x,margin,fun,...)
x表示要處理的數據。
MARGIN表示函數的範圍。
取1表示該函數應用於該線。
取2意味著對列應用函數。
FUN表示要使用的功能。
Rbind()和cbind()組合兩個或多個矩陣。
Rbind()表示按行合並,cbind()表示按列合並。
陣列
數組可以被視為具有多個下標的相同類型元素的集合。
數組的生成函數是array(),其語法是
數組(data=NA,dim = length(data),dimnames-NULL)
數據表示數據,可以為空。
模糊表示維度
Dimnames可以更改數組難度的名稱。
列表
向量、矩陣和的單位必須是相同類型的數據。如果壹個數據對象需要包含不同的數據類型,它可以是列表的形式。
列表是由壹組有序的對象組成的對象,列表中包含的對象也稱為其組件,它們可以是不同的模式或(和)類型。
語法為:list(變量1=組件1,變量2=組件2,...)
要訪問列表中的組件,您可以以LST【【1】】、LST【【2】】的形式進行訪問。
因為組件可以命名,所以您可以在列表名稱後添加壹個$符號,然後寫入組件名稱以訪問列表組件。
函數length()、mode()和names()可以分別返回列表中組件的長度(組件數量)、數據類型和名稱。
數據框
數據框是壹種矩陣形式的數據,但數據框中的每壹列都可以是不同類型的數據。數據框的每壹列都是壹個變量,每壹行都是壹個觀察值。
數據框中可能包含的列表有壹些限制:
1.組件必須是向量(數值、字符、邏輯)、因子、數字矩陣、列表或其他數據框。
2.矩陣、列表和數據框為新的數據框提供盡可能多的變量,因為它們每個都有列、元素或變量。
3.數字向量、邏輯值和因子保持其原始格式,而字符向量被強制轉換為因子,它們的級別是向量中出現的獨立值。
4.數據框中變量形式的矢量結構必須具有相同的長度,矩陣結構必須具有相同的行數。
在R中,函數data.frame()用於生成數據幀,其語法為:data . frame(data 1,data2,...).
數據框的列名默認為變量名,也可以重命名列名。
您還可以修改數據框的行名稱。
2.3.6因數和順序因數
數據類型化通常將數據分為不同的級別或因素。
生成因子的命令是factor(),其語法是:factor(數據,級別,標簽,...).
其中數據代表數據。
Levels是因子水平向量。
標簽是因子的標簽向量。
等級、標簽是可選的,所以妳不必選擇它們。
如果上述每個因子都不能表示因子的大小,則可以通過ordered()函數生成以表示因子的順序(考慮因子之間的順序)。
2.4數據輸入和編輯
C-function: C-function將所有值連接成壹個向量或列表,它可以形成壹個數字向量、壹個字符向量或其他類型的向量。
掃描功能:類似於C功能,實際上是壹個鍵盤輸入數據的功能。當您輸入scan(),然後按enter鍵時,您將等待輸入數據,只要數據之間用空格分隔(c函數應該用逗號分隔)。輸入數據後,再次按回車鍵,數據輸入完成。
掃描功能也可以讀取外部文本文件。如果有壹個現有的文本文件data.txt,讀取該文件的命令是:》;x = scan(file =“dat . txt“)
如果原始文件中的數據之間有逗號和其他分隔符,則在使用scan讀入時應刪除這些分隔符。命令是:》x = scan(file =“dat . txt“,sep=“,“)
編制資料
數據輸入命令
Xx最初沒有定義,但現在它被賦予了壹個空值。這時會出現壹個電子表格界面,等待數據輸入:》data . entry(xx = c(NA))
當電子表格關閉時,數據將自動保存。
編輯命令可用於編輯函數和數據,但不會自動保存。
修復功能類似於編輯,但可以自動保存。
從外部文件讀取數據
從文本文件中讀取:
& gts 1 = read . table(“student . txt“)
& gts1
V1 V2 V3
1班級性別分數
2 1女80
3 1男性85
4 2名男子92
5 2名婦女76
6 3女61
7 3名婦女95
8 3名男子
讀取表數據的命令是:read.table。
忽略標簽並直接使用默認的線標簽。
& gtS2 = read . table(“student . txt“,header=T)
& gts2
班級性別分數
1
2 1男性85
3 2名男子92
4 2名婦女76
5 3女61
6 3名婦女95
7 3名男子83
從網絡讀取數據
借助read.table函數,Url可以從網頁中讀取正確格式的數據。
& gtaddress=/bin/view/Misc/WebHome
/sample.txt
& gtread . table(file = URL(地址))
以其他格式讀入數據庫
要讀取其他格式的數據庫,您必須首先安裝“外來”模塊,該模塊不屬於R的八個內置模塊,需要在使用前安裝。圖書館(外國)
SAS: r只能構成SAS傳輸格式(XPORT)文件,因此有必要轉換普通的SAS數據文件(。固態硬盤和。sas7bdat)轉換為傳輸格式(XPORT)文件,然後使用命令:read.xport()。
spss數據庫:read.spss()可以讀取SPSS數據文件。
Epi信息數據庫:
要給數據集壹個名稱,它是;Read.epiinfo(“文件名。rec“)-》;名字
Stata數據庫:
r可以讀入Stata5、6、7、6和7的數據庫。
讀取數據文件後,使用數據集名稱$ variable name來使用每個變量。
& gtRead.dta(“文件名。dta“)
讀取數據文件後,使用數據集名稱$ variable name來使用每個變量。
& gt平均值(數據年齡)
是計算數據集數據中變量年齡的平均值。
2.5函數、循環和條件表達式
2.5.1編程功能
語法是:
函數名=函數(參數1,參數2…)
{
功能體
函數返回值
}
對於這種只有壹個算術表達式的簡單函數,您想{}嗎
& gt平均值(數據年齡)
是計算數據集數據中變量年齡的平均值。
如果不使用括號,請直接輸入函數名,然後按enter鍵顯示函數的定義:
單參數:要使函數個性化,可以使用單個參數,函數將根據不同的參數返回不同的值。
& gtwelcome . sb = function(names)print(paste(“welcome”,names,“to
使用R“)
& gtwelcome.sb(“方先生”)
【1】“歡迎方先生使用R“
& gt王先生
【1】“歡迎王先生使用R“
默認參數:即不輸入任何參數。
函數的默認參數
& gtwelcome . sb = function(names =“方先生“)print(paste(“welcome“、
名稱,“使用R“))
& gt歡迎
【1】“歡迎方先生使用R“
當函數體中有多個表達式時,應該用{}括起來。
用於循環
for循環的語法是:
For(值向量中的變量){
表示...
}