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

首頁 > 編程 > R > 正文

R語言中因子的創建與管理

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

因子在R語言中可以用來表示名義型變量或有序變量。

在統計學中,變量可以分為:區間變量,名義變量和有序變量。

區間變量即可以取連續值的變量,如體重,身高,溫度等等。

名義變量一般表示類別,如性別,種族等等。

有序變量是有一定排序順序的變量,如職稱,年級等等。

在R語言中,名義變量和有序變量可以使用因子來表示。

1、因子的創建

在R語言中可以使用factor()函數和gl()函數來創建因子變量。

(1)使用factor()函數

函數factor()以一個整數向量的形式存儲類別值,整數的取值范圍是[1... k ](其中k 是名義型變量中唯一值的個數),同時一個由字符串(原始值)組成的內部向量將映射到這些整數上。

其語法格式為:

f<-factor(x=charactor(),levels,labels=levels,exclude = NA, ordered = is.ordered(x),namax = NA)

其中:

x 為創建因子的數據,是一個向量;levels:因子數據的水平,默認是x中不重復的值;labels:標識某水平的名稱,與水平一一對應,以方便識別,默認取levels的值;exclude:從x中剔除的水平值,默認為NA值;ordered:邏輯值,因子水平是否有順序(編碼次序),若有取TRUE,否則取FALSE;nmax:水平個數的限制。

fc1<-factor(c(1,2,3,3,1,2,2,3,1,3,2,1))

fc2<-factor(rep(1:3,times=2),labels=c("A","B","C"))

grade<-c("Freshman","Sophomore","Junior","Senior")

fc3<-factor(grade,ordered=TRUE)  #對于字符型向量,因子的水平默認依字母順序創建

fc4<-factor(grade,ordered=TRUE, levels=c("Freshman","Sophomore","Junior","Senior")) #指定levels,則按levels中的順序定義數值

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

R語言中創建因子的方法

(2)使用gl()函數

gl()函數用于定義有規律的因子向量,其語法格式如下:

gl(n, k, length = n*k, labels = 1:n, ordered = FALSE)

其中參數的含義如下:

n: 正整數,表示因子的水平個數

k:正整數,表示每個水平重復的次數;

length: 正整數,表示因子向量的長度,默認為n*k

labels: 表示因子水平的名稱,默認值為1:n

ordered: 邏輯變量,表示因子水平是否是有次序的,默認值為FALSE

g1 <- gl(3,3)  # 1 1 1 2 2 2 3 3 3

g2 <- gl(3,3,5)  # 1 1 1 2 2

g3 <- gl(3,2, labels = c('A', 'B', 'C'))  # A A B B C C

2、因子的索引

fc1[1]  #訪問輸出第一個水平

fc1[1:3]  #訪問輸出1~3個水平

fc1[c(1,4,7)]  #訪問輸出第1,4,7個水平值

fc1[-1]  #排除第一個

fc1[-c(1:4)] #排除第1~4ge

fc1[fc1!=1] #過濾掉等于1的因子水平

fc3[fc3>'Junior']  #對于有序因子可以使用>,>=,<,<=,!=,==;而非有序因子,只可以使用!=和==

注意:因為因子一般表示名義變量或有序變量,如非有序因子,則使用>,>=,<,<=比較大小是沒有意義的。

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

R語言中因子的索引方式

3、因子的修改

fc1[1] <- 3  #注意,修改的值必須在原有的水平中

fc1[1:3] <- 2 #將1~3個水平值改為2

fc1[-1] <- 3 #將除第1個水平之外的其它水平值修改為3

fc1[-c(1,4,7)] <-1 #將除第1,4,7個水平之外的值修改為1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丽江市| 台北市| 于都县| 沿河| 满洲里市| 秦安县| 长沙市| 开江县| 辽源市| 南平市| 嘉义市| 石泉县| 陇西县| 永泰县| 怀来县| 英德市| 台北县| 柞水县| 伊宁市| 海宁市| 陕西省| 外汇| 九龙城区| 罗城| 灯塔市| 大同县| 绍兴市| 宝坻区| 迁西县| 江油市| 永济市| 古田县| 襄樊市| 无为县| 陆丰市| 嘉义县| 安丘市| 嘉兴市| 登封市| 嵊泗县| 台中县|