R中的列数据类型分类

Column data types classification in R

我有一个数据库。如何获取所有列类型,并将其保存到文件中。区别类型: - 漂浮 - 整数 - 大整数 - 字符串

我的代码是:

   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

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

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

R 中没有 'BigInteger' 这样的东西。 data structures in hadley's adv-r更详细的解释

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

+------------+----------+--------------+
|   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 之间没有区别。此外,字符串只是 R 中的一个字符。

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

lapply(data, typeof)

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