我有一个按邮政编码组织的数据框(称之为:“df”)。我想将“Zip”更改为数字数据类型,但是当我应用“is.numeric”时,它会将其转换为“逻辑”数据类型。当我尝试将其他变量从“数字”转换为“字符”或任何其他数据类型时,它也会将其转换为“逻辑”数据类型。我尝试更改变量数据类型的代码行:
df$Zip = is.numeric(df$Zip)
df$Zip = is.numeric(is.character(df$Zip))
数据概览:
'data.frame': 32989 obs. of 22 variables:
$ Zip : Factor w/ 32990 levels "01001","01002",..: 1 2 3 4 5 6 7 8 9 10 ...
$ MedianAge : num 45.8 23.6 19.9 45.4 43.8 49.9 66.2 48.1 39.9 43.2 ...
$ MedianAgeMale : num 43.2 23.4 19.9 42.8 40.8 51.3 68.1 46.1 39.9 44.4 ...
我的主要目标是创建一个子集,其中仅包含 90001:97635 范围内的邮政编码,并包含以下行:
CAzipcodes = subset(df,Zip>90001 & Zip<97635)
除非“Zip”是“数字”数据类型,否则它不会读取条件。如果还有其他方法可以使用“因子”数据类型对数据进行子集化,请告诉我。
从文档:
如果 is.numeric 的参数是模式“numeric”(类型“double”或类型“integer”)而不是因子,则 is.numeric 的默认方法返回 TRUE,否则返回 FALSE。即 is.integer(x) || is.double(x), or (mode(x) == "numeric") && !is.factor(x)。
所以你要:
df$Zip = as.numeric(df$Zip)
或使用 dplyr 和管道
df %<>% mutate(Zip = as.numeric(Zip))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句