如何使用colClasses在R中快速导入数据

528 阅读1分钟

在将文件导入R时,你可以使用colClasses参数来指定每一列的类别:

df <- read.csv('my_data.csv',
               colClasses=c('character', 'numeric', 'numeric'))

使用colClasses的好处是,你可以更快地导入数据,特别是在文件非常大的时候。

下面的例子说明了如何在实践中使用这个参数:

例子:导入文件时使用colClasses

假设我有一个名为my_data.csv的CSV文件,其中有三列,我想将其导入R:

我可以使用下面的语法来实现:

#import CSV file
df <- read.csv('my_data.csv',
               colClasses=c('character', 'numeric', 'numeric'))

#view class of each column in data frame
str(df)

'data.frame':	14 obs. of  3 variables:
 $ team    : chr  "Mavs" "Spurs" "Hornets" "Rockets" ...
 $ points  : num  91 99 104 103 105 88 89 93 96 99 ...
 $ rebounds: num  33 23 26 25 25 26 29 30 34 23 ...

请注意,colClasses参数中的值的数量应该与数据框架中的列的数量相匹配。

例如,如果你只给colClasses参数提供一个值,那么数据框中的每一列都将有相同的类:

#import CSV file
df <- read.csv('my_data.csv',
               colClasses=c('character'))

#view class of each column in data frame
str(df)

'data.frame':	14 obs. of  3 variables:
 $ team    : chr  "Mavs" "Spurs" "Hornets" "Rockets" ...
 $ points  : chr  "91" "99" "104" "103" ...
 $ rebounds: chr  "33" "23" "26" "25" ...

请注意,由于我们只给colClasses参数提供了一个值,所以结果数据框中的每一列都有一个 "字符 "类。

请注意,你可以在colClasses参数中指定以下潜在的类:

  • 字符:"嘿","那里","世界"
  • 复数:as.complex(-1), 4i
  • 数字:as.integer(20), 3L
  • 整数:4, 12, 158
  • 逻辑:TRUE, FALSE

其他资源

下面的教程解释了如何在R中执行其他常见的操作:

如何在R中手动输入原始数据
如何将CSV文件导入R中
如何将Excel文件导入R中