繁体   English   中英

为什么数据类型变成“逻辑”? [R

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM