版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kidpea_lau/article/details/82771918
数据整理是获取原数据,理解这些数据,清洗它们。 通常第一步我们拿到数据,很多人非常着急的马上开始研究如何建模分析,实际上,一开始整理数据非常重要。数据的准备阶段通常有:合并数据集和记录、选择数据子集样本、汇总记录、导出新的属性、排序数据以便建模、删除或替换空白值或缺失值、分为训练数据集和测试数据集等...而整理之前,花时间多了解你拿到的 数据对下一步整理,有很大的好处!
本文整理一下在R语言处理数据时候 几个比较容易理解新数据的步骤。
有关这方面的,非常建议大家看一下:Makingdata science accessible – Data Munging
下面用 ls()里面的数据来进行演示:
> ls()
打开 后看到有一个包含plants的数据。
第一步,是了解你拿到的数据是什么类型(class function)和其大概规模(dim / nrow and ncol、object.size)。
> class(plants)
[1] "data.frame"
> dim(plants)
[1] 5166 10
> nrow(plants)
[1] 5166
> ncol(plants)
[1] 10
> object.size(plants)
644232 bytes
接下来,知道总框架后肯定是开始慢慢深入细节,names() 和 head()还有 tail()便可。
> names(plants)
[1] "Scientific_Name"
[2] "Duration"
[3] "Active_Growth_Period"
[4] "Foliage_Color"
[5] "pH_Min"
[6] "pH_Max"
[7] "Precip_Min"
[8] "Precip_Max"
[9] "Shade_Tolerance"
[10] "Temp_Min_F"
> head(plants)
Scientific_Name
1 Abelmoschus
2 Abelmoschus esculentus
3 Abies
4 Abies balsamea
5 Abies balsamea var. balsamea
6 Abutilon
Duration Active_Growth_Period
1 <NA> <NA>
2 Annual, Perennial <NA>
3 <NA> <NA>
4 Perennial Spring and Summer
5 Perennial <NA>
6 <NA> <NA>
Foliage_Color pH_Min pH_Max Precip_Min
1 <NA> NA NA NA
2 <NA> NA NA NA
3 <NA> NA NA NA
4 Green 4 6 13
5 <NA> NA NA NA
6 <NA> NA NA NA
Precip_Max Shade_Tolerance Temp_Min_F
1 NA <NA> NA
2 NA <NA> NA
3 NA <NA> NA
4 60 Tolerant -43
5 NA <NA> NA
6 NA <NA> NA
> tail(plants,10)
看完首尾的大概细节数据,特别是出现非常多NA,大多会希望了解具体每个列的数据总体概况。所以接下来,summary()就可以知道。
> summary(plants)
Scientific_Name
Abelmoschus : 1
Abelmoschus esculentus : 1
Abies : 1
Abies balsamea : 1
Abies balsamea var. balsamea: 1
Abutilon : 1
(Other) :5160
Duration
Perennial :3031
Annual : 682
Annual, Perennial: 179
Annual, Biennial : 95
Biennial : 57
(Other) : 92
NA's :1030
Active_Growth_Period
Spring and Summer : 447
Spring : 144
Spring, Summer, Fall: 95
Summer : 92
Summer and Fall : 24
(Other) : 30
NA's :4334
Foliage_Color pH_Min
Dark Green : 82 Min. :3.000
Gray-Green : 25 1st Qu.:4.500
Green : 692 Median :5.000
Red : 4 Mean :4.997
White-Gray : 9 3rd Qu.:5.500
Yellow-Green: 20 Max. :7.000
NA's :4334 NA's :4327
pH_Max Precip_Min
Min. : 5.100 Min. : 4.00
1st Qu.: 7.000 1st Qu.:16.75
Median : 7.300 Median :28.00
Mean : 7.344 Mean :25.57
3rd Qu.: 7.800 3rd Qu.:32.00
Max. :10.000 Max. :60.00
NA's :4327 NA's :4338
Precip_Max Shade_Tolerance
Min. : 16.00 Intermediate: 242
1st Qu.: 55.00 Intolerant : 349
Median : 60.00 Tolerant : 246
Mean : 58.73 NA's :4329
3rd Qu.: 60.00
Max. :200.00
NA's :4338
Temp_Min_F
Min. :-79.00
1st Qu.:-38.00
Median :-33.00
Mean :-22.53
3rd Qu.:-18.00
Max. : 52.00
NA's :4328
也可以用table()来了解每列内部每个参数出现的次数
> table(plants$Active_Growth_Period)
Fall, Winter and Spring
15
Spring
144
Spring and Fall
10
Spring and Summer
447
Spring, Summer, Fall
95
Summer
92
Summer and Fall
24
Year Round
5
若你处理一些大型的数据,建议用str。其是一个简单通用的诊断函数,可以代替summary函数,特别是想查看一些“大型、数据紧凑、内嵌套列表的列表”
> str(plants)
'data.frame': 5166 obs. of 10 variables:
$ Scientific_Name : Factor w/ 5166 levels "Abelmoschus",..: 1 2 3 4 5 6 7 8 9 10 ...
$ Duration : Factor w/ 8 levels "Annual","Annual, Biennial",..: NA 4 NA 7 7 NA 1 NA 7 7 ...
$ Active_Growth_Period: Factor w/ 8 levels "Fall, Winter and Spring",..: NA NA NA 4 NA NA NA NA 4 NA ...
$ Foliage_Color : Factor w/ 6 levels "Dark Green","Gray-Green",..: NA NA NA 3 NA NA NA NA 3 NA ...
$ pH_Min : num NA NA NA 4 NA NA NA NA 7 NA ...
$ pH_Max : num NA NA NA 6 NA NA NA NA 8.5 NA ...
$ Precip_Min : int NA NA NA 13 NA NA NA NA 4 NA ...
$ Precip_Max : int NA NA NA 60 NA NA NA NA 20 NA ...
$ Shade_Tolerance : Factor w/ 3 levels "Intermediate",..: NA NA NA 3 NA NA NA NA 2 NA ...
$ Temp_Min_F : int NA NA NA -43 NA NA NA NA -13 NA ...