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.

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


你可能感兴趣的:(r)