中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用R語言怎么實現因子型數值轉數值型操作

發布時間:2021-04-19 16:19:04 來源:億速云 閱讀:521 作者:Leah 欄目:開發技術

本篇文章為大家展示了使用R語言怎么實現因子型數值轉數值型操作,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

因子(factor)轉換成數值型(numeric)的規則是這樣的:

一共有n個數,那么轉換后的數字就會在1——n中取值,數字最小的取一,次小的取二,以此類推。

那么如何讓因子(factor)類型里的數值轉換對應的數值型呢?

 mean(as.numeric(as.character(factorname)))
     mean(as.numeric(levels(factorname)[factorname]))

以上代碼都可以實現將因子(factor)類型里的數值轉換對應的數值型,思路都是先轉換成字符型然后再轉換成數值型。

補充:R_as.numeric()函數在轉換小數時返回無意義結果的解決

本文重點解決as.numeric()函數將factor轉為數值時得出的無意義結果的解決

假設有數據框aaa

x   |    y     |       value 
------------------------------------------
a1      b2        0.510665432157769
a2      b3        0.887655678543227
..      ..              ...

運行as.numeric(aaa[1,3]),返回的結果居然是123?當然,這只是個栗子,為了表達問題所在。真正運行時不一定得到的結果是123

在R help中找到如下參考

Warning

If x is a factor, as.numeric will return the underlying numeric (integer) representation, which is often meaningless as it may not correspond to the factor levels, see the ‘Warning' section in factor (and the 2nd example below).

看到meaningless這個詞了嗎,意思是如果使用as.numeric轉換一個因子,則通常會返回一個無意義的結果,是因子的一個“整型數字象征”,因為R為了節省內存提高速度,因子類型底層是用C語言中的int實現的,因子的值與該整型數值的“轉換表格”存儲在內存中。

那么我們如何解決呢?

嵌套使用

as.numeric(as.character(aaa[1,3]))

這樣返回的就是正常應轉化的數值,而不是一個無意義的結果如一百二十三。

但上面的方法有一個問題,在小數點后位數太大時輸出結果會四舍五入。

對于這個,我們可以使用print()函數中的參數digit,print(as.numeric(as.character(aaa[1,3])),digits = 16),輸出的就是不帶四舍五入的完整值

理論上format(xx, digits = 16)也可以保證長度,但我沒在這種情況下試。

上述內容就是使用R語言怎么實現因子型數值轉數值型操作,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤壁市| 鞍山市| 涿州市| 庄浪县| 平泉县| 清徐县| 永清县| 彰化县| 安西县| 南部县| 嘉禾县| 准格尔旗| 木里| 泰和县| 专栏| 渝北区| 淄博市| 建平县| 云南省| 抚松县| 台山市| 浪卡子县| 宜阳县| 大邑县| 观塘区| 莱州市| 当阳市| 贵阳市| 若尔盖县| 稻城县| 青河县| 凤庆县| 枝江市| 临泉县| 开鲁县| 安平县| 梁平县| 泰安市| 凌源市| 建水县| 金溪县|