R语言基本操作

2020/09/29 06:50

R语言基本操作

R语言和Python类似,也是有许许多多的包(Python中是模块)组成,具体用什么就安装什么,用的时候再去加载。

1、安装包:

语法:install.packages("包名")(两个引号""不能省略)

如:下面就是安装强大的绘图包 ggplot2

>install.packages("ggplot2")

2、加载包

语法:library("包名")

>library("ggplot2")

3、查看数据类型

语法:class(变量)(数据框(data.frame)是R语言特有的数据格式)

> class(iris)

[1] "data.frame"

4、取数据框中的行和列

语法:<数据框>[行,列](如果取从..行(列)到...行(列),中间用:划分)

还是以iris的数据集为例子。

取第十行:

>iris[10,]

取第一行到第100行

>iris[1:100,]

取第三列:

>iris[,3]

取第一列到第三列:

>iris[,1:3]

如果要连续取多行(列)的话用c来取

iris[c(1:35,50:85,100:135),]

取列:

iris[,c(1:2,4:5)]

5、数据框拼接

按行拼接:

rbind

用法:rbind(data.frame1,data.datafram2,........)

> train_data1=iris[1:5,]

> train_data2=iris[7:8,]

> rbind(train_data1,train_data2) 

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1          5.1         3.5          1.4         0.2  setosa

2          4.9         3.0          1.4         0.2  setosa

3          4.7         3.2          1.3         0.2  setosa

4          4.6         3.1          1.5         0.2  setosa

5          5.0         3.6          1.4         0.2  setosa

7          4.6         3.4          1.4         0.3  setosa

8          5.0         3.4          1.5         0.2  setosa

按列拼接:

cbind

用法:cbind(data.frame1,data.datafram2,........)

> iris[3:4,] 

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

3          4.7         3.2          1.3         0.2  setosa

4          4.6         3.1          1.5         0.2  setosa

> iris[100:101,]   

Sepal.Length Sepal.Width Petal.Length Petal.Width    Species

100          5.7         2.8          4.1         1.3 versicolor

101          6.3         3.3          6.0         2.5  virginica

> train_data1=iris[3:4,1:2]

> train_data2=iris[100:101,4:5]

> cbind(train_data1,train_data2) 

Sepal.Length Sepal.Width Petal.Width    Species

3          4.7         3.2         1.3 versicolor

4          4.6         3.1         2.5  virginica

利用iris的数据来比较随机森林和支持向量机在分类中的作用

#加载支持向量机的包

library("e1071")

library(kernlab)

#加载随机森林包

library("randomForest")

#加载iris的数据集

data_iris=iris

#得到训练数据集

train_data=data_iris[c(1:35,50:85,100:135),]

#得到测试数据集

test_data=data_iris[c(35:50,85:100,135:150),]

#随机森林测试

rFM=randomForest(Species~.,data=train_data,importance=TRUE)

rfm_result=predict(rFM,test_data[,c(1:4)])

#支持向量机测试

svmmodel=svm(Species ~ ., data =train_data)

svm_result=predict(svmmodel,test_data[,c(1:4)])

#随机森林比较

a=0

b=1

while(b<=48){

if(rfm_result[b]==test_data[,5][b]){

a=a+1

}else{

a=a

}

b=b+1

}

#随机森林正确率

a/48

#支持向量机比较

j=0

i=1

while(i<=48){

if(svm_result[i]==test_data[,5][i]){

j=j+1

}else{

j=j

}

i=i+1

}

#支持向量机正确率

j/48

结果是:随机森林正确率百分之百,支持向量机是0.979.

出现这个结果应该是数据集太少了吧。目前的目的只是为了完成论文。。。。

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司