R語言-修改(替換)因子變量的元素操作

因子變量的核心是水平,通過指定水平來修改。

x<-c(1,1,1,1,2,2,2,3,3,3,3,4)
xx<-factor(x);xx
levels(xx)
#得到水平為3的位置
level_3<-which(levels(xx)==3)
#重新賦值
levels(xx)[level_3]<-03
xx
#由於新值是03,0開頭,所以把03當成3處理
levels(xx)[level_3]<-c("03")
xx
#字符串會自動轉換成因子
levels(xx)[level_3]<-333
xx
#隻要不是0開頭的數字,都可以識別成因子
#如果還存在原來的因子水平,則刪除未使用的因子水平
xx<-droplevels(xx)

補充:R語言開發之變量的數據類型&賦值&查找&刪除

R語言中的變量提供瞭程序可以操作的命名存儲,這個變量可以存儲原子向量,而原子向量組或許多R對象的組合。所以,有效的變量名稱應該是由字母,數字和點或下劃線字符組成,並且變量名稱以字母開頭,或者點後面不帶數字,我們來看一些變量命名的示例,如下:

變量名 合法性 原因
var_name2. 有效 由字母,數字,點和下劃線組成
var_name% 無效 含有字符“%”因此無效。隻允許點(.)和下劃線(_)組成。
2var_name 無效 以數字開頭,因此無效。
.var_name, var.name 有效 可以以點(.)開頭,但點(.)後面不應是數字。
.2var_name 無效 以點(.)但後跟一個數字使其無效。
_var_name 無效 以下劃(_)開始因此無效。

R語言中的變量可以使用向左,向右和等於運算符分配值,還可以使用print()或cat()函數打印變量的值,其中cat()函數將多個變量或項目組合成一個連續的打印輸出 ,我們來看下使用實例:

輸出結果如下:

上述代碼中的向量c(TRUE,1)具有邏輯和數字類的混合,所以邏輯類被強制為數字類,使TRUE為1。大傢註意下就好。

R語言中的變量本身沒有被聲明為任何數據類型,而是獲取分配給它的R對象的數據類型,所以R被稱為動態類型語言,這意味著我們可以在程序中使用它時一次又一次地改變同一個變量的變量的數據類型,或者使用同一個變量來存儲任何數據類型,來看下案例:

輸出結果如下:

我們如想要知道工作區中當前可用的所有變量,可使用ls()函數,並且它也可以使用模式來匹配變量名,示例如下:

輸出結果如下:

根據我們的環境中聲明的變量可能所有不同,所以我們的輸出和這裡輸出結果可能不太一樣,註意紅色框框中的內容就好。我們接下來嘗試使用ls()函數的模式來匹配變量名,示例如下:

輸出結果如下:

以點(.)開頭的變量是隱藏的,它們可以使用ls()函數的“all.names = TRUE”參數列出,示例如下:

輸出結果如下:

我們可以使用rm()函數刪除變量,示例如下:

輸出結果如下:

好啦,本次記錄就到這裡瞭。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。