当前位置:天才代写 > tutorial > 其他教程 > 数据阐明与R语言条记2:R软件读写文件和综合性例子

数据阐明与R语言条记2:R软件读写文件和综合性例子

2017-12-04 08:00 星期一 所属: 其他教程 浏览:513

一、R读文件

1、读文本文件数据

先配置事情目次,把文本文件放于该目次下

(配置事情目次的要领:选择R软件东西栏”文件”—->”改变事情目次”。发起在开始利用R软件时就选择事情目次)

x=read.table(“abc.txt”)

假如文件不在事情目次下,写路径并利用”\\”(一个\为转义字符),如:c:\\tmp\\abc.txt

> x=read.table("abc.txt")
> x
    V1 V2
1  175 67
2  183 75
3  165 56
4  145 45
5  178 67
6  187 90
7  156 43
8  176 58
9  173 60
10 170 56

5、读剪切板

文本或Excel的数据均可通过剪贴板操纵

y <- read.table(“clipboard”,header=F)

header=F 暗示不读列头

> y <- read.table("clipboard",header=F)
> y
    V1 V2
1  175 67
2  183 75
3  165 56
4  145 45
5  178 67
6  187 90
7  156 43
8  176 58
9  173 60
10 170 56
> z <- read.table("clipboard",header=T)
> z
  商品 价值
1    A    2
2    B    3
3    C    5
4    D    5

6、读Excel文件数据

要领1:先把excel另存为空格脱离的prn或”,”脱离的csv文本名目再读

w <- read.table(“test.prn”,header=T)

> w <- read.table("test.prn",header=T)
> w
  商品 价值
1    A    2
2    B    3
3    C    5
4    D    5
> q <- read.table("test.csv",header=T)
> q
  商品.价值
1       A,2
2       B,3
3       C,5
4       D,5
>

要领2:安装RODBC包,再通过ODBC读

library(RODBC)
z <- odbcConnectExcel(“text.xls”)
w <- SQLFetch(z,”Sheet1″)

二、综合性例子

模仿发生统计专业同学的名单(学号区分),记录数学阐明,线性代数,概率统计三
科后果,然后举办一些统计阐明。

1、模仿生成100名学生分数

> num=seq(10378001,10378100)
> num
  [1] 10378001 10378002 10378003 10378004 10378005 10378006 10378007 10378008
  [9] 10378009 10378010 10378011 10378012 10378013 10378014 10378015 10378016
 [17] 10378017 10378018 10378019 10378020 10378021 10378022 10378023 10378024
 [25] 10378025 10378026 10378027 10378028 10378029 10378030 10378031 10378032
 [33] 10378033 10378034 10378035 10378036 10378037 10378038 10378039 10378040
 [41] 10378041 10378042 10378043 10378044 10378045 10378046 10378047 10378048
 [49] 10378049 10378050 10378051 10378052 10378053 10378054 10378055 10378056
 [57] 10378057 10378058 10378059 10378060 10378061 10378062 10378063 10378064
 [65] 10378065 10378066 10378067 10378068 10378069 10378070 10378071 10378072
 [73] 10378073 10378074 10378075 10378076 10378077 10378078 10378079 10378080
 [81] 10378081 10378082 10378083 10378084 10378085 10378086 10378087 10378088
 [89] 10378089 10378090 10378091 10378092 10378093 10378094 10378095 10378096
 [97] 10378097 10378098 10378099 10378100
>

利用seq()函数生成1-100个学号,代表100名学生。

> x1=round(runif(100,min=80,max=100))
> x1
  [1]  99  90  81  83  89  99  80  89  98  97  88  81  96  96  85  98  89  92
 [19]  82  82  84  98  95  91  91  94  87  80  95  91  83  91  93  88  96  85
 [37]  90  80  97  94 100  97  91  89  85  96  93  96  89  94  96  90  81  91
 [55]  99  82  83  93  89  91  81  95  81  90  81  85 100  89  81  89  83  81
 [73]  87  92  97  82  80  86  89  88  87  89  86  83  82  92  89  88  97  82
 [91]  84  95  81  88  88  98  82  92  90  99
>

runif()函数生成匀称漫衍函数,较大值100,最小值80,代表分数。
round()函数四舍五入取整。

> x2=round(rnorm(100,mean=80,sd=7))
> x2
  [1] 71 82 76 85 67 84 84 83 75 74 66 91 87 76 76 83 81 78 76 91 87 92 80 89
 [25] 75 76 78 77 79 84 80 89 90 69 78 89 85 76 90 77 78 79 82 87 87 68 78 79
 [49] 79 83 76 79 63 87 84 76 85 89 69 74 85 81 83 76 84 76 81 70 79 84 93 90
 [73] 83 88 86 87 93 82 75 71 75 69 79 86 77 75 88 83 81 84 93 78 75 89 79 79
 [97] 84 82 88 70
>

rnorm()函数生成正态漫衍函数,总数100,均值为80,尺度差为7。代表另一科后果。

> x3=round(rnorm(100,mean=83,sd=18))
> x3
  [1] 110  55  74  72  82  81 101  89  76  84  75  81  72  51  85  77  61 103
 [19]  86 105  88  86  74  39  97  60  69  50  89  67  51  74  96  83  85 116
 [37]  32  80  59  88  64  76  80 104 110  71  65  74  57  91  72  68  50 101
 [55] 103 106  81 119  73  76  83  77  93  87  65  65  70 104 133  89  73 101
 [73]  80  98  91  79  79  79  74  90  93  93  82  95  99 117  84  69  88 114
 [91]  78  63  56  95  69  72  68  91  71  75
>

生成100个均值为83,尺度差为18的学科后果。

> x3[which(x3>100)]=100
> x3
  [1] 100  55  74  72  82  81 100  89  76  84  75  81  72  51  85  77  61 100
 [19]  86 100  88  86  74  39  97  60  69  50  89  67  51  74  96  83  85 100
 [37]  32  80  59  88  64  76  80 100 100  71  65  74  57  91  72  68  50 100
 [55] 100 100  81 100  73  76  83  77  93  87  65  65  70 100 100  89  73 100
 [73]  80  98  91  79  79  79  74  90  93  93  82  95  99 100  84  69  88 100
 [91]  78  63  56  95  69  72  68  91  71  75
>

#p#分页标题#e#

分数大于100的设为100。

> x=data.frame(num,x1,x2,x3)
> x
         num  x1 x2  x3
1   10378001  99 71 100
2   10378002  90 82  55
3   10378003  81 76  74
4   10378004  83 85  72
5   10378005  89 67  82
6   10378006  99 84  81
7   10378007  80 84 100
8   10378008  89 83  89
9   10378009  98 75  76
10  10378010  97 74  84
11  10378011  88 66  75
12  10378012  81 91  81
13  10378013  96 87  72
14  10378014  96 76  51
15  10378015  85 76  85
16  10378016  98 83  77
17  10378017  89 81  61
18  10378018  92 78 100
19  10378019  82 76  86
20  10378020  82 91 100
21  10378021  84 87  88
22  10378022  98 92  86
23  10378023  95 80  74
24  10378024  91 89  39
25  10378025  91 75  97
26  10378026  94 76  60
27  10378027  87 78  69
28  10378028  80 77  50
29  10378029  95 79  89
30  10378030  91 84  67
31  10378031  83 80  51
32  10378032  91 89  74
33  10378033  93 90  96
34  10378034  88 69  83
35  10378035  96 78  85
36  10378036  85 89 100
37  10378037  90 85  32
38  10378038  80 76  80
39  10378039  97 90  59
40  10378040  94 77  88
41  10378041 100 78  64
42  10378042  97 79  76
43  10378043  91 82  80
44  10378044  89 87 100
45  10378045  85 87 100
46  10378046  96 68  71
47  10378047  93 78  65
48  10378048  96 79  74
49  10378049  89 79  57
50  10378050  94 83  91
51  10378051  96 76  72
52  10378052  90 79  68
53  10378053  81 63  50
54  10378054  91 87 100
55  10378055  99 84 100
56  10378056  82 76 100
57  10378057  83 85  81
58  10378058  93 89 100
59  10378059  89 69  73
60  10378060  91 74  76
61  10378061  81 85  83
62  10378062  95 81  77
63  10378063  81 83  93
64  10378064  90 76  87
65  10378065  81 84  65
66  10378066  85 76  65
67  10378067 100 81  70
68  10378068  89 70 100
69  10378069  81 79 100
70  10378070  89 84  89
71  10378071  83 93  73
72  10378072  81 90 100
73  10378073  87 83  80
74  10378074  92 88  98
75  10378075  97 86  91
76  10378076  82 87  79
77  10378077  80 93  79
78  10378078  86 82  79
79  10378079  89 75  74
80  10378080  88 71  90
81  10378081  87 75  93
82  10378082  89 69  93
83  10378083  86 79  82
84  10378084  83 86  95
85  10378085  82 77  99
86  10378086  92 75 100
87  10378087  89 88  84
88  10378088  88 83  69
89  10378089  97 81  88
90  10378090  82 84 100
91  10378091  84 93  78
92  10378092  95 78  63
93  10378093  81 75  56
94  10378094  88 89  95
95  10378095  88 79  69
96  10378096  98 79  72
97  10378097  82 84  68
98  10378098  92 82  91
99  10378099  90 88  71
100 10378100  99 70  75
> write.table(x,"D:\\mark.txt",col.names=F,row.names=F,sep=" ")
>

合成数据框并生存到硬盘。

data.frame()函数用于生成数据框。
write.table()将数据框写到文件中。col.names=F:不写列名;row.names=F:不写行名;sep=” “:用空格做脱离符。

2、计较各科平均分

利用函数:mean(),colMeans(),apply()

> mean(x)
        num          x1          x2          x3
10378050.50       89.31       80.69       79.79
告诫信息:
mean(<data.frame>) is deprecated.
 Use colMeans() or sapply(*, mean) instead.
> colMeans(x)
        num          x1          x2          x3
10378050.50       89.31       80.69       79.79
> colMeans(x)[c("x1","x2","x3")]
   x1    x2    x3
89.31 80.69 79.79
> apply(x,2,mean)
        num          x1          x2          x3
10378050.50       89.31       80.69       79.79
>

colMeans():计较每列的平均值。

单用colMeans()将学号也做了平均值计较,colMeans(x)[c(“x1″,”x2″,”x3”)]只计较科目后果。

3、计较各科较高较低分

> apply(x,2,max)
     num       x1       x2       x3
10378100      100       93      100
> apply(x,2,min)
     num       x1       x2       x3
10378001       80       63       32
>

apply(x,2,mean)也用来计较平均值,第二个参数2代表计较每列,假如按行计较,则第二个参数为1。

apply(x,2,max)计较每列的较大值;apply(x,2,min)计较每列的最小值。

4、计较每人总分

> apply(x[c("x1","x2","x3")],1,sum)
  [1] 270 227 231 240 238 264 264 261 249 255 229 253 255 223 246 258 231 270
 [19] 244 273 259 276 249 219 263 230 234 207 263 242 214 254 279 240 259 274
 [37] 207 236 246 259 242 252 253 276 272 235 236 249 225 268 244 237 194 278
 [55] 283 258 249 282 231 241 249 253 257 253 230 226 251 259 260 262 249 271
 [73] 250 278 274 248 252 247 238 249 255 251 247 264 258 267 261 240 266 266
 [91] 255 236 212 272 236 249 234 265 249 244
>

三、漫衍函数

#p#分页标题#e#

正态漫衍函数:rnorm()
泊松漫衍函数:rpois()
指数漫衍函数:rexp()
Gamma漫衍函数:rgamma()
匀称漫衍函数:runif()
二项漫衍函数:rbinom()
几许漫衍函数:rgeom()

 

    关键字:

天才代写-代写联系方式