我正在尝试使用r中的mi包来计算缺失值并遇到问题。
当我将数据加载到r中时,它会将缺少值的列识别为因子变量。如果我使用命令
将其转换为数字变量dataset$Income <- as.numeric(dataset$Income)
它将列转换为序数值(最小值为1,第二个最小值为2,等等)
我想将此列转换为数值,同时保留变量的原始值。我怎么能这样做?
编辑: 由于人们已经问过,这里是我的代码和数据的示例。
DATA:
96 GERMANY 6 1960 72480 73 50.24712 NA 0.83034767 0
97 GERMANY 6 1961 73123 85 48.68375 NA 0.79377610 0
98 GERMANY 6 1962 73739 98 48.01359 NA 0.70904115 0
99 GERMANY 6 1963 74340 132 46.93588 NA 0.68753213 0
100 GERMANY 6 1964 74954 146 47.89413 NA 0.67055298 0
101 GERMANY 6 1965 75638 160 47.51518 NA 0.64411484 0
102 GERMANY 6 1966 76206 172 48.46009 NA 0.58274711 0
103 GERMANY 6 1967 76368 183 48.18423 NA 0.57696055 0
104 GERMANY 6 1968 76584 194 48.87967 NA 0.64516949 0
105 GERMANY 6 1969 77143 210 49.36219 NA 0.55475352 0
106 GERMANY 6 1970 77783 227 49.52712 3,951.00 0.53083969 0
107 GERMANY 6 1971 78354 242 51.01421 4,282.00 0.51080717 0
108 GERMANY 6 1972 78717 254 51.02941 4,655.00 0.48773913 0
109 GERMANY 6 1973 78950 264 50.61033 5,110.00 0.48390087 0
110 GERMANY 6 1974 78966 270 48.82353 5,561.00 0.56562229 0
111 GERMANY 6 1975 78682 284 50.50279 6,092.00 0.56846030 0
112 GERMANY 6 1976 78298 301 49.22833 6,771.00 0.53536154 0
113 GERMANY 6 1977 78160 321 49.18999 7,479.00 0.55012371 0
代码:
Income <- dataset$Income
给了我一个因子变量,因为数据中有NA。如果我尝试将其变为数字
as.numeric(Income)
抛弃原始值,并用列的等级替换它们。我想保留原始值,同时仍然认识到缺失值。
答案 0 :(得分:0)
来自德国的每个数据管理员都知道一个问题:NA
的列用冒号来表示数字。但是R
只知道没有数字分组的英文小数点样式。因此,此列被视为通常缩放的字符变量。
尝试删除冒号,然后您将获得数值。
顺便说一下,即使我们在德国写十进制冒号,像3,951.00
这样的数字在语法上也没有意义。它们在其他语言中甚至没有意义。请参阅国际号码语法的these examples。