[英]Why are data types turning into “logical” ? R
我有一个按邮政编码组织的数据框(称为:“ 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”)而不是因数,则返回TRUE,否则返回FALSE。 即is.integer(x)|| is.double(x)或(mode(x)==“ numeric”)&&!is.factor(x)。
所以你要:
df$Zip = as.numeric(df$Zip)
或使用dplyr和管道
df %<>% mutate(Zip = as.numeric(Zip))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.