簡體   English   中英

R語言中數據框列值轉換問題

[英]Problem in Converting column's value of data frame in R-language

作為 R 的新手,我正在嘗試將列的值轉換為數據框中的數字。

我的代碼:

hData <- read.csv("outcome-of-care-measures.csv")

temp <- subset(hData, hData$State == "LA")

as.numeric(temp$Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia)

當我粘貼這個

(temp$Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia)

控制台中的代碼沒有轉換它返回:

 [1] 12.5 12.7 13.0 9.6  9.8  11.5 9.5  11.2 10.2 11.1 9.7  9.6  9.3  11.0 13.5 9.3  10.6 9.9  12.0
[20] 11.3 12.6 13.1 10.7 11.2 9.9  9.7  9.2  14.2 10.6 10.8 10.1 12.6 12.7 7.4  12.9 10.1 12.9 11.0
[39] 11.7 10.6 8.4  11.7 11.0 10.8 12.6

轉換后返回:

[1]  26  28  31 118 120  16 117  13   3  12 119 118 115  11  36 115   7 121  21  14  27  32   8  13
[25] 121 119 114  43   7   9   2  27  28  97  30   2  30  11  18   7 106  18  11   9  27

請幫助我我錯過了什么......?

由於您的數據存儲為因子,因此將它們轉換為數字有點復雜。 R 常見問題解答指出:

如何將因子轉換為數字?

在將數值數據讀入 R 時(通常在讀入文件時),它們可能會作為因素出現。 如果 f 是這樣一個因素 object,您可以使用

as.numeric(as.character(f)) 來取回數字。 更有效但更難記住的是

as.numeric(levels(f))[as.integer(f)] 在任何情況下,不要為手頭的任務直接調用 as.numeric() 或他們的喜歡(as.numeric() 或 unclass() 給內部代碼)。

你應該試試這個,它會給你同樣的結果:

as.numeric(levels(temp$Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia)) 
[temp$Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia]

您也可以在R常見問題解答中查看原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM