【實驗目的】
1)熟悉R語言的基本數據類型
2)熟悉R語言的基本操作
3)熟悉R語言列表的主要運算函數
【實驗原理】
在R語言裡操作和接觸的所有東西都稱作對象(object)。對象有很多種類 可以包含各種類型的數據。R 語言裡所有的東西都被稱為對象,R語言中常見的數據類型有幾下幾種,分别是字符型 (character)、數值型 (numeric)、複數型 (complex)以及邏輯型 (logical)。通過mode()函數可以查看一個對象的類型。
R語言中的基本運算包括以下:數學計算,比較運算,運算函數,向量常用統計函數,矩陣常用函數集合運算,向量化,從文件中讀取數據,概率分布,循環和條件操作。
R語言的數據對象主要包括向量(vector),矩陣(matrix),因子(factors),列表(list),數據框(data frame),函數( function)。 列表是R語言對象,它包含不同類型的元素,如數字,字符串,向量和其中的另一個列表。 列表還可以包含矩陣或函數作為其元素。 列表是使用list()函數創建的。
【實驗環境】
本次環境是:win7 64位系統 R 3.3.3
【實驗步驟】
一、打開R語言的界面
1.1雙擊桌面上的程序R x64 3.3.3,出現如下畫面,則打開成功。如圖1所示
二、列表
2.1列表介紹
列表是一種特别的對象集合,它的元素也由序号(下标)區分,但是各元素的類型可以是任意對象,不同元素不必是同一類型。元素本身允許是其它複雜數據類型,比如,列表的一個元素也允許是列表
2.2 列表的創建
向量、矩陣和數組的元素必須是同一類型的數據。一個數據對象需要包含不同的數據類型,它可以采用列表這種形式。
創建列表可用list()函數,語法是:list(name1 = component1, name2 = component2, ...)。
看下例,使用list()創建了一個名為"rec"的列表,内容包括名字,年齡,考試分數。
2.3 查看列表元素。
列表元素總可以用“列表名[[下标]]”的格式引用,注意:列表不同于向量,我們每次隻能引用一個元素,如rec[[1:2]]的用法是不允許的。
“列表名[下标]”或“列表名[下标範圍]”的用法也是合法的,但其意義與用兩重括号的記法完全不同,兩重記号取出列表的一個元素,結果與該元素類型相同,如果使用一重括号,則結果是列表的一個子列表(結果類型仍為列表)。
2.4使用名字作為下表引用元素。
在定義列表時如果指定了元素的名字(如rec中的name,age,scores),則引用列表 元素還可以用它的名字作為下标,格式為“列表名[["元素名"]]”
2.5 使用“列表名$元素名”取列表元素
其中“元素名”可以簡寫到與其它元素名能夠區分的最短程度,比如“rec$s”可以代表“rec$score”。這種寫法方便了交互運行,編寫程序時一般不用簡寫以免降低程序的可讀性。
三、列表
3.1 列表的修改。
列表的元素可以修改,隻要把元素引用賦值即可。
可以任意修改一個列表元素
3.2 列表元素修改
如果被賦值的元素原來不存在,則列表延伸以包含該新 元素。例如,rec現在共有三個元素,我們定義一個新的命名元素,則列表長度變為4,再定 義第六号元素則列表長度變為6,第五号元素因為沒有定義所有其值是“NULL”,這是空對象的記号。如果rec是一個向量 ,則其空元素為“NA”,這是缺失值的記号。從這裡我們也可以體會“NULL”與“NA”的區 别。
列表的連接
列表的連接。
幾個列表可以用連接函數c()連接起來,結果仍為一個列表,其元素為各自變量的列表元素。
幾個返回列表的例子
列表的重要作用是把相關的若幹數據保存在一個數據對象中,這樣在編寫函數時,我們就可以返回這樣一個包含多項輸出的列表。因為函數的返回結果可以完整地存放在一個列表中,我們可以繼續對得到的結果進行分析。下面給出幾個返回列表的例子。
特征值和特征向量。
函數eigen(x)對對稱矩陣x計算其特征值和特征向量,返回結果為一個列表,列表的 兩個成員(元素)為values和vectors。注:%o% 中間的為字母’o’
可見三個特征值隻有第一個不為零(由于數值計算精度所限,第三個特征值應為零但結果隻是近似為零)。特征向量按矩陣存放,每一列為一個特征向量。
奇異值分解。
函數svd(x)進行奇異值分解 ,其中x是任意陣,可以為正交陣,可以為正交陣,可以為對角陣(隻有主對角線元素不為零)。svd(x) 返回有三個成員d,u,v的列表,d為包含奇異值的向量(即x的主對角線元素),u,v分别為上面的兩個正交陣
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!