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.
出现这个结果应该是数据集太少了吧。目前的目的只是为了完成论文。。。。