R的一个简单例子

模拟产生统计专业同学的名单(学号区分),记录数学分析,线性代数,概率统计三科成绩,然后进行一些统计分析

1.生成数据
首先依次生成学号,数学成绩,线性代数成绩,概率统计成绩各项数据,依次用num,x1,x2,x3来表示:

> 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

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

> x2=round(rnorm(100,mean=80,sd=7))
> x2
  [1] 78 90 72 78 78 74 72 81 76 80 75 72 90 65 74 84 84 91
 [19] 78 82 78 83 92 77 79 79 75 73 86 74 79 86 82 75 101 78
 [37] 74 81 73 80 81 78 84 88 92 75 73 79 82 81 76 79 82 75
 [55] 87 78 90 90 81 75 74 75 75 89 79 79 80 80 77 70 77 67
 [73] 76 74 80 87 91 92 90 75 92 71 88 89 74 83 81 85 72 88
 [91] 88 91 93 78 86 95 80 78 91 84

> x3=round(rnorm(100,mean=83,sd=18))
> x3
  [1] 87 86 75 97 77 76 110 96 53 141 74 99 97 92 79 91 85 82
 [19] 74 82 90 66 67 40 109 58 56 52 56 90 82 120 95 68 98 72
 [37] 85 44 94 47 103 96 93 95 66 116 85 85 100 94 47 68 71 66
 [55] 57 91 101 75 74 54 64 110 95 103 59 73 70 63 100 123 69 76
 [73] 83 40 86 89 80 43 126 108 80 76 81 101 72 77 47 93 91 72
 [91] 98 68 71 83 71 114 78 69 130 85

> x3[which(x3>100)]=100  #将大于100的数据直接赋值为100
> x3
  [1] 87 86 75 97 77 76 100 96 53 100 74 99 97 92 79 91 85 82
 [19] 74 82 90 66 67 40 100 58 56 52 56 90 82 100 95 68 98 72
 [37] 85 44 94 47 100 96 93 95 66 100 85 85 100 94 47 68 71 66
 [55] 57 91 100 75 74 54 64 100 95 100 59 73 70 63 100 100 69 76
 [73] 83 40 86 89 80 43 100 100 80 76 81 100 72 77 47 93 91 72
 [91] 98 68 71 83 71 100 78 69 100 85

2.生成数据框
> x=data.frame(num,x1,x2,x3)
> x
 
       num x1 x2 x3
1 10378001 90 78 87
2 10378002 98 90 86
3 10378003 82 72 75
....
99 10378099 97 91 100
100 10378100 95 84 85

> write.table(x,file="d:\\course.txt",col.name=F,row.name=F,sep="\t")
#将数据框的数据保存到本地,不生成列头和行头,分隔符为Tab制表符


3.进行统计

> mean(x)          #求每列的平均值(即各个学科成绩的平均值)
        num x1 x2 x3
10378050.50 90.46 80.79 79.81
>
> colMeans(x)          # 求每列的平均值
        num x1 x2 x3
10378050.50 90.46 80.79 79.81

> colMeans(x)[c("x1","x2","x3")]           # "x1","x2","x3"这三 列的平均值
   x1 x2 x3
90.46 80.79 79.81

> apply(x,2,mean)    
        num x1 x2 x3
10378050.50 90.46 80.79 79.81
> apply(x,2,min)           #求每列最小的值
     num x1 x2 x3
10378001 80 65 40

> apply(x,2,max)             #求每列最大的值
     num x1 x2 x3
10378100 100 101 100 

> apply(x[c("x1","x2","x3")],1,sum)                #求每行 "x1","x2","x3"这三列的和(即每个学生的总成绩)
  [1] 255 274 229 266 237 245 259 259 226 263 231 259 272 244 248 274 253 265
 [19] 244 257 256 236 258 217 275 228 219 214 236 263 245 281 259 235 284 249
 [37] 251 223 263 221 273 261 276 271 248 270 254 246 279 257 213 229 250 224
 [55] 227 255 278 256 253 212 228 274 263 284 232 235 244 237 273 270 239 235
 [73] 242 209 254 267 251 233 277 274 254 242 257 286 237 259 213 278 244 241
 [91] 269 246 254 246 248 277 240 237 288 264

注:
1.apply用法
apply(X, MARGIN, FUN, ...)
X 阵列,包括矩阵
MARGIN 1表示矩阵行,2表示矩阵列,也可以是c(1,2)

2.常见的分布函数
正态分布函数rnorm( )
泊松分布函数rpois( )
指数分布函数rexp( )
Gamma分布函数rgamm
均匀分布函数runif( )
二项分布函数rbinom( )
几何分布函数rgeom( )






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用R语言建立神经网络的实例: 首先,我们需要安装并加载 `neuralnet` 包,这是一个用于神经网络建模的常用包: ```r install.packages("neuralnet") library(neuralnet) ``` 然后,我们需要准备数据集来训练我们的神经网络。这里我们使用 `iris` 数据集作为例子: ```r data(iris) ``` 接下来,我们将数据集分为训练集和测试集: ```r set.seed(123) trainIndex <- sample(1:nrow(iris), 0.7*nrow(iris)) trainData <- iris[trainIndex, ] testData <- iris[-trainIndex, ] ``` 接着,我们需要将数据集中的输入变量和输出变量分离出来: ```r trainX <- trainData[, 1:4] trainY <- as.matrix(trainData[, 5]) testX <- testData[, 1:4] testY <- as.matrix(testData[, 5]) ``` 现在,我们可以开始建立神经网络了。这里我们使用一个包含一个隐层的神经网络,隐层包含 5 个神经元: ```r net <- neuralnet(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = trainData, hidden = 5) ``` 训练好的神经网络可以通过以下命令进行可视化: ```r plot(net) ``` 现在我们可以用测试集数据来评估我们的神经网络的表现。以下命令可以用来预测测试集的输出: ```r netPred <- compute(net, testX) ``` 我们可以将预测结果与测试集的真实输出进行比较,以评估神经网络的表现: ```r table(round(netPred$net.result), testY) ``` 这里输出的结果是一个混淆矩阵,它展示了神经网络的预测结果与测试集的真实输出之间的对应情况。 以上就是一个简单的使用 R 语言建立神经网络的实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值