[英]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.