dat...">
美文网首页
01数据与R 2018-12-16

01数据与R 2018-12-16

作者: 浩瀚之宇 | 来源:发表于2018-12-29 12:34 被阅读0次

1.3.3 数据使用与编辑

1. 数据排序
> dat=read.csv("table1_1.csv")

> dat

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    71    66

5    张志杰    63  82    89    78    80

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> dat[order(dat$统计学),]

  学生姓名 统计学 数学 营销学 管理学 会计学

9    袁芳芳    58  51    79    91    85

5    张志杰    63  82    89    78    80

10  张建国    63  70    91    85    82

1    张青松    68  85    84    89    86

3    田思雨    74  74    61    80    69

6    赵颖颖    78  84    51    60    60

8    宋丽媛    80  100    53    73    70

2    王宇翔    85  91    63    76    66

4    徐丽娜    88  100    49    71    66

7    王智强    90  78    59    72    66

> save(dat, file="dat01.rda")

> dat[order(dat$统计学,decreasing=T),]

  学生姓名 统计学 数学 营销学 管理学 会计学

7    王智强    90  78    59    72    66

4    徐丽娜    88  100    49    71    66

2    王宇翔    85  91    63    76    66

8    宋丽媛    80  100    53    73    70

6    赵颖颖    78  84    51    60    60

3    田思雨    74  74    61    80    69

1    张青松    68  85    84    89    86

5    张志杰    63  82    89    78    80

10  张建国    63  70    91    85    82

9    袁芳芳    58  51    79    91    85

> sort(dat$统计学,decreasing=T)

[1] 90 88 85 80 78 74 68 63 63 58

> ?order

> order(dat$统计学,decreasing=T)

[1]  7  4  2  8  6  3  1  5 10  9

2. 选择特定的变量进行分析

> rbind(dat, totals=colSums(dat[,2:6]))

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    71    66

5    张志杰    63  82    89    78    80

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

11    <NA>    815  679    775    730    747

Warning message:

In `[<-.factor`(`*tmp*`, ri, value = 747) :

  invalid factor level, NA generated

> colSums(dat[,2:6])

统计学  数学 营销学 管理学 会计学

  747    815    679    775    730

> class(dat)

[1] "data.frame"

> totals

Error: object 'totals' not found

> totals=colSums(dat[,2:6])

> totals

统计学  数学 营销学 管理学 会计学

  747    815    679    775    730

> rbind(dat, totals)

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    71    66

5    张志杰    63  82    89    78    80

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

11    <NA>    815  679    775    730    747

Warning message:

In `[<-.factor`(`*tmp*`, ri, value = 747) :

  invalid factor level, NA generated

##由数据框转变为矩阵:

> new_dat<-dat

> rownames(new_dat)<-dat[,1]

> new_dat

      学生姓名 统计学 数学 营销学 管理学 会计学

张青松  张青松    68  85    84    89    86

王宇翔  王宇翔    85  91    63    76    66

田思雨  田思雨    74  74    61    80    69

徐丽娜  徐丽娜    88  100    49    71    66

张志杰  张志杰    63  82    89    78    80

赵颖颖  赵颖颖    78  84    51    60    60

王智强  王智强    90  78    59    72    66

宋丽媛  宋丽媛    80  100    53    73    70

袁芳芳  袁芳芳    58  51    79    91    85

张建国  张建国    63  70    91    85    82

> new_dat<-new_dat[,-1]

> new_dat

      统计学 数学 营销学 管理学 会计学

张青松    68  85    84    89    86

王宇翔    85  91    63    76    66

田思雨    74  74    61    80    69

徐丽娜    88  100    49    71    66

张志杰    63  82    89    78    80

赵颖颖    78  84    51    60    60

王智强    90  78    59    72    66

宋丽媛    80  100    53    73    70

袁芳芳    58  51    79    91    85

张建国    63  70    91    85    82

> rbind(new_dat, colSums(new_dat[,1:5]))

      统计学 数学 营销学 管理学 会计学

张青松    68  85    84    89    86

王宇翔    85  91    63    76    66

田思雨    74  74    61    80    69

徐丽娜    88  100    49    71    66

张志杰    63  82    89    78    80

赵颖颖    78  84    51    60    60

王智强    90  78    59    72    66

宋丽媛    80  100    53    73    70

袁芳芳    58  51    79    91    85

张建国    63  70    91    85    82

11        747  815    679    775    730

> rbind(new_dat, totals=colSums(new_dat[,1:5]))

      统计学 数学 营销学 管理学 会计学

张青松    68  85    84    89    86

王宇翔    85  91    63    76    66

田思雨    74  74    61    80    69

徐丽娜    88  100    49    71    66

张志杰    63  82    89    78    80

赵颖颖    78  84    51    60    60

王智强    90  78    59    72    66

宋丽媛    80  100    53    73    70

袁芳芳    58  51    79    91    85

张建国    63  70    91    85    82

totals    747  815    679    775    730

> apply(new_dat, 1, sum)

张青松 王宇翔 田思雨 徐丽娜 张志杰 赵颖颖 王智强 宋丽媛 袁芳芳 张建国

  412    381    358    374    392    333    365    376    364    391

> apply(new_dat, 2, sum)

统计学  数学 营销学 管理学 会计学

  747    815    679    775    730

> apply(new_dat, 1, mean)

张青松 王宇翔 田思雨 徐丽娜 张志杰 赵颖颖 王智强 宋丽媛 袁芳芳 张建国

  82.4  76.2  71.6  74.8  78.4  66.6  73.0  75.2  72.8  78.2

> apply(new_dat, 2, mean)

统计学  数学 营销学 管理学 会计学

  74.7  81.5  67.9  77.5  73.0

> apply(new_dat, 2, sd)

  统计学      数学    营销学    管理学    会计学

11.324016 14.623041 16.251154  9.300538  9.333333

> apply(new_dat, 1, sd)

  张青松    王宇翔    田思雨    徐丽娜    张志杰    赵颖颖    王智强    宋丽媛

8.264381 11.987493  7.092249 19.791412  9.555103 13.813037 11.832160 17.049927

  袁芳芳    张建国

17.412639 11.432410

> apply(dat, 1,mean)

[1] NA NA NA NA NA NA NA NA NA NA

Warning messages:

1: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

2: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

3: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

4: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

5: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

6: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

7: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

8: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

9: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

10: In mean.default(newX[, i], ...) :

  argument is not numeric or logical: returning NA

> apply(dat[,2:6], 1,mean)

[1] 82.4 76.2 71.6 74.8 78.4 66.6 73.0 75.2 72.8 78.2

> apply(dat[,-1,2:6], 1,mean)

[1] 82.4 76.2 71.6 74.8 78.4 66.6 73.0 75.2 72.8 78.2

> apply(dat[,-1], 1,mean)

[1] 82.4 76.2 71.6 74.8 78.4 66.6 73.0 75.2 72.8 78.2

3. 编辑数据框

> edit(dat)

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    71    66

5    张志杰    63  82    89    78    80

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> x=edit(dat)

> x

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    71    66

5    张志杰    63  82    89    78    80

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> library(reshape)

> rename(dat, c(学生姓名="姓名", 统计学="统计"))

    姓名 统计 数学 营销学 管理学 会计学

1  张青松  68  85    84    89    86

2  王宇翔  85  91    63    76    66

3  田思雨  74  74    61    80    69

4  徐丽娜  88  100    49    71    66

5  张志杰  63  82    89    78    80

6  赵颖颖  78  84    51    60    60

7  王智强  90  78    59    72    66

8  宋丽媛  80  100    53    73    70

9  袁芳芳  58  51    79    91    85

10 张建国  63  70    91    85    82

4. 缺失值的处理

> dat2<-read.csv("table1_1_2.csv")

> save(dat2, file="dat2.rda")

> dat2<-read.csv("table1_1_2.csv")

> dat2

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    NA    NA

5    张志杰    63  82    89    NA    NA

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> sum(dat2,na.rm=T)

Error in FUN(X[[i]], ...) :

  only defined on a data frame with all numeric variables

> sum(dat2[,2:6],na.rm=T)

[1] 3451

> mean(dat2[,2:6],na.rm=T)

[1] NA

Warning message:

In mean.default(dat2[, 2:6], na.rm = T) :

  argument is not numeric or logical: returning NA

> dat2

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    NA    NA

5    张志杰    63  82    89    NA    NA

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> na.omit(dat2)

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> na.rm(dat2)

Error in na.rm(dat2) : could not find function "na.rm"

> na.(dat2)

na.action      na.exclude    na.omit       

na.contiguous  na.fail        na.pass       

> na.exclude(dat2)

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

1.3.4 数据类型的转换

> as.matrix(dat[,2:6])

      统计学 数学 营销学 管理学 会计学

[1,]    68  85    84    89    86

[2,]    85  91    63    76    66

[3,]    74  74    61    80    69

[4,]    88  100    49    71    66

[5,]    63  82    89    78    80

[6,]    78  84    51    60    60

[7,]    90  78    59    72    66

[8,]    80  100    53    73    70

[9,]    58  51    79    91    85

[10,]    63  70    91    85    82

> as.matrix(dat)

      学生姓名 统计学 数学  营销学 管理学 会计学

[1,] "张青松" "68"  " 85" "84"  "89"  "86" 

[2,] "王宇翔" "85"  " 91" "63"  "76"  "66" 

[3,] "田思雨" "74"  " 74" "61"  "80"  "69" 

[4,] "徐丽娜" "88"  "100" "49"  "71"  "66" 

[5,] "张志杰" "63"  " 82" "89"  "78"  "80" 

[6,] "赵颖颖" "78"  " 84" "51"  "60"  "60" 

[7,] "王智强" "90"  " 78" "59"  "72"  "66" 

[8,] "宋丽媛" "80"  "100" "53"  "73"  "70" 

[9,] "袁芳芳" "58"  " 51" "79"  "91"  "85" 

[10,] "张建国" "63"  " 70" "91"  "85"  "82" 

> as.data.frame(as.matrix(dat))

  学生姓名 统计学 数学 营销学 管理学 会计学

1    张青松    68  85    84    89    86

2    王宇翔    85  91    63    76    66

3    田思雨    74  74    61    80    69

4    徐丽娜    88  100    49    71    66

5    张志杰    63  82    89    78    80

6    赵颖颖    78  84    51    60    60

7    王智强    90  78    59    72    66

8    宋丽媛    80  100    53    73    70

9    袁芳芳    58  51    79    91    85

10  张建国    63  70    91    85    82

> matrix.1=as.matrix(dat[,2:6])

> rownames(matrix.1)=dat[,1]

> matrix.1

      统计学 数学 营销学 管理学 会计学

张青松    68  85    84    89    86

王宇翔    85  91    63    76    66

田思雨    74  74    61    80    69

徐丽娜    88  100    49    71    66

张志杰    63  82    89    78    80

赵颖颖    78  84    51    60    60

王智强    90  78    59    72    66

宋丽媛    80  100    53    73    70

袁芳芳    58  51    79    91    85

张建国    63  70    91    85    82

> save(matrix.1, file="matrix.1.rda")

> class(dat$统计学)

[1] "integer"

> class(as.vector(dat$统计学))

[1] "integer"

> as.vector(as.matrix(dat[,2:6]))

[1]  68  85  74  88  63  78  90  80  58  63  85  91  74 100  82  84  78 100  51

[20]  70  84  63  61  49  89  51  59  53  79  91  89  76  80  71  78  60  72  73

[39]  91  85  86  66  69  66  80  60  66  70  85  82

1.3.5 生成随机数

相关文章

网友评论

      本文标题:01数据与R 2018-12-16

      本文链接:https://www.haomeiwen.com/subject/xevtkqtx.html