R语言入门总结

本文介绍了R语言的基本语法,包括数据集和数据结构的概念,如向量、矩阵、数据框和列表。同时,列举了常用R命令,如help(), install.packages(), plot()等。此外,通过一个实际案例展示了如何处理数据,包括数据框的构建、归一化、求平均值、四分位数分析和评分分配。最后,讲解了如何使用strsplit()函数将姓名拆分成姓和名,并按姓氏排序数据框。" 128259554,7783893,LINGO在交通流均衡中的应用,"['算法', '交通工程', '数学模型', '网络优化', '交通流量']

1、R的简单语法


数据集:

观测   变量

记录   字段

示例   属性

 

名义变量

有序变量

连续变量

 

数据结构:

向量--只能同一类型的数据

标量---一个数据,常用来存一个常数

数组--维度可以大于2

数据框---可以包含多种类型的数据,最常用的数据结构

矩阵--只能同一类型数据

列表---上面的任何一种结构的数据都可以放入列表中。


2、经常用的R命令:

help() 

getwd() 

setwd()

 install.packages()

 q()

c()

 source() 

 library() 

plot()

head() 

tail() 

sapply()

apply()

aggregate()

table()

summary()

cbind()

rbind()

set.seed()

psate()

row.names()

names()

sort()#返回排序的数值序列

order()#返回排序后原数据的下标号

sample()

常用的抽样形式:

#把数据按比例分为两部分,一部分全为1表示,一部分用2表示

ind=sample(2,nrow(data),replace=FALSE,prob=c(0.7,0.3))

train<-data[ind==1,]

test<-data[ind==2,]


#从1~总数据行中抽取30行

ind<-sample(1:nrow(data),30)

train<-data[ind,]

test<-data[-ind,]


3、一个简单的处理案例

#构建一个数据框
Student<-c('John Davis','Anglea Williams','Bullwinkle Moose','David Jones','Janice Markhammer','Cheryl Cushing','Reuven Ytzrhak','Greg Knox','Joel England','Mary Rayburn')
Math<-c(502,600,412,358,495,512,410,625,573,522)
 Science<-c(95,99,80,82,75,85,80,95,89,86)
English<-c(25,22,18,15,20,28,15,30,27,18)
 roster<-data.frame(Student,Math,Science,English,stringsAsFactors = FALSE)


 #对指定列进行归一化
 z<-scale(roster[,2:4])
#对每一行求平均值
 score<-apply(z,1,mean)
#把平均值加到数据框后
 roster<-cbind(roster,score)
#找到4个分位点
 y<-quantile(score,c(0.8,0.6,0.4,0.2))
#扩展一个评分的字段
 roster$grade[score>=y[1]]<-"A"
roster$grade[score<y[1]&score>=y[2]]<-"B"
roster$grade[score<y[2]&score>=y[3]]<-"C"
 roster$grade[score<y[3]&score>=y[4]]<-"D"
 roster$grade[score<y[4]]<-"E"


#把名字的姓、名分开---注意函数直接用在一个向量上
name<-strsplit(roster$Student," ")
#获取部分的函数"["
lastname<-sapply(name,"[",2)
firstname<-sapply(name,"[",1)
#注意如何去掉一列
roster<-cbind(firstname,lastname,roster[,-1])
#按姓氏排序
roster<-roster[order(lastname,firstname),]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值