對R語言因子的淺讀

2021-07-10 22:43:07 字數 2118 閱讀 8971

故事開始了:

噔噔噔!開學了!一年級的小朋友們入學了啊啊好激動!但是很快,他們人生中第一次正式的考試來了!

第一次考試嘛,難免失手!當然了肯定有厲害的人對吧!先假設班裡只有5個人哈(資料不要太多,沒意思),成績如下:小韜:100、小紅:95,小花:80、小兵:75、小懶:56

好了那現在我給他們的成績做個總結哈

那好,現在用factor()轉化下它~~~

好了總結下:什麼叫因子呢?

今天就不討論有序變數哈,下次再來~而

因子就是類別和有序的變數,相當於把變數分成離散的還有連續的,因子就是離散的那些向量。

我們先仔細觀察下上圖,levels是數字,並按從小到大排序的,所以我們先忽略掉那些同學的名字(小韜對不起了我要忽略你哈哈),單獨看分數就好。

再看看對於factor的定義:生成因子資料物件的函式是factor(),語法是factor(data, levels, labels, ...),其中data是資料,levels是因子水平向量,labels是因子的標籤向量。

那好,分數就是data啦,那問題來了levels是什麼?labels又是什麼?

為了讓大家更好地了解,在這個例子中,我們就把levels想象為各種0-100之間可能的分數好了,如果它是預設的話,那就是還是那5人的分數~

labels是標籤向量是一種解釋說明的作用!然後最後輸出的是你進行說明的字串,但這不是替換哦!!!levels的內容還是在的,還是不變的!只是沒有直接輸出而已!

我們來打打**吧(有個大壞蛋叫labels,它把大家的成績都改了!!)

把levels設定為預設值就好,也就是他們對應的分數從小到大排列~

等下!為什麼變化如此之大!為什麼小韜本來是第一的,現在成了最後一名!才十分!

我們來仔細分析下,上面說了levels按從小到大排列的!就是56,75,80,95,100,現在把它解釋為50,40,30,20,10。

那我們對號入座!小懶之前56,就變成了50,小韜之前100,就變成了10分啊!

如果我設定levels呢~大家來看看

就是他們的成績和我們所設定的水平值一樣的話,才會顯示出來,如果不一樣,就是缺失值na了~

相信大家到這裡已經對facotr的用法有了乙個初步的理解!

那我們現在就來來檢驗乙個物件是否是因子,用函式is.factor(),很容易記得的!英語中「is factor?」哈哈哈哈

false證明了變數score不是因子,那我把它轉換成因子

!用as.factor,「作為因子嘛」,也很容易記住對吧?!

邏輯值為true,證明轉換成功了噢耶~

那我們來看看因子有什麼應用呢?!

當然有了啊可以分類啊

那我再舉個例子,小韜是男生,小紅是女生,小花是女生,小兵是男生,小懶是男生。

現在我要計算男女生分別的人數

現在我要計算女生的平均分,男生的平均分

但是倒數第二個例子寶寶發現可以不用把向量轉化為因子就可以輸出了,好憂傷!居然不需要用因子也可以輸出!明明說需要因子的!寶寶心累!

望高人指點55555555555555555555555555

不過還是小小的總結下,其實因子只是r語言中的乙個獨特的資料型別而已,它是可以幫助我們分組的。嗯雖然我還是沒能全部弄懂它,不過希望接下來的學習,可以讓我一點點地理解它然後真正了解它的用武之地吧!!!

R語言 因子

因子是用於對資料進行分類並將其儲存為級別的資料物件。它們可以儲存字串和整數。它們在具有有限數量的唯一值的列中很有用。像 男性 女性 和true,false等。它們在統計建模的資料分析中很有用。使用factor 函式通過將向量作為輸入建立因子。例 create a vector as input.da...

R 語言 因子分析

因子分析 options digits 2 covariances ability.cov cov 將協方差矩陣轉化為相關係數矩陣 correlations cov2cor covariances 第一步 判斷需提取的公共因子數 library psych covariances ability.c...

R語言 因子的構造 factor函式

參考內容 教程一,非數值型變數 類別變數和順序變數 在r語言中稱為因子,也稱為因子型變數。因子型變數內的所有非重複值,被稱為因子水平 levels 建立因子 在r語言中可以使用factor 函式和gl 函式來建立因子變數。1 使用factor 函式 factor 函式的語法格式為 f factor ...