繁体   English   中英

R中的列数据类型分类

[英]Column data types classification in R

我有一个数据库。 如何获取所有列类型,并将其保存到文件中。 特殊类型: - Float - Integer - BigInteger - String

我的代码是:

   library(foreign)
   library(memisc)
   data <- read.spss("data.sav", use.value.labels = FALSE, max.value.labels = 100)
   write.table(summary(data), "out.txt")

但是,此代码仅区分两种类型的数据...(数字,字符串)

出样品:

                            Length Class  Mode     
SubsID                      20582  -none- numeric  
SubsID_RN                   20582  -none- character
responseid                  20582  -none- numeric

所需产量:

SubsID                      BigInteger
SubsID_RN                   String
responseid                  Integer

在R中,类型系统与许多其他常见语言的工作方式不同。 首先,R中的所有内容都是一个对象,其中一个基本对象类型是vector 向量本身的类型由它包含的数据定义。 有六种原子矢量类型可以通过typeof函数访问。 在R文档中,您可以找到下表

+------------+----------+--------------+
|   typeof   |   mode   | storage.mode |
+------------+----------+--------------+
| logical    | logical  | logical      |
| integer    | numeric  | integer      |
| double     | numeric  | double       |
| complex    | complex  | complex      |
| character  | character| character    |
| raw        | raw      | raw          |
+------------+----------+--------------+

如您所见,float和double或Integer和BigInteger之间没有区别。 String也只是一个字符。

所以在你的情况下,如果你想知道每个变量的具体基本类型,你可以使用

lapply(data, typeof)

R文档提供了有关对象和基本类型的更多信息: http//cran.r-project.org/doc/manuals/r-release/R-lang.html#Objects

您可以像这样调用列或类的列:

lapply(your_data_frame, class)
lapply(your_data_frame, typeof)

在R. cf.中没有'BigInteger'这样的东西。 数据结构在hadley的adv-r中有更详细的解释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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