91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

使用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

娱乐| 西安市| 绵阳市| 镇原县| 濉溪县| 南通市| 建昌县| 武安市| 新宁县| 东阿县| 南木林县| 平舆县| 咸宁市| 金湖县| 鹿邑县| 新宁县| 陈巴尔虎旗| 耿马| 宜丰县| 高安市| 梁河县| 河津市| 九龙县| 油尖旺区| 昌平区| 五河县| 福州市| 灵璧县| 赣榆县| 正宁县| 弥勒县| 全州县| 大宁县| 邻水| 东乌珠穆沁旗| 平顶山市| 富阳市| 马公市| 垫江县| 任丘市| 田东县|