###################30sample函数####################
#sample(x,size,replace=F)
#x可以是任何对象,
#size规定了从对象中抽出多少个数,size应该小于x的规模,否则会报错
#replace默认是F,表示每次抽取后的数就不能在下一次被抽取;T表示抽取过的数可以继续拿来被抽取
x<-c(1:100)
sample(x,size = 20)
sample(x,size = 20)
sample(x,size = 20)
sample(x,size = 20,replace = TRUE)
sample(x,size = 20,replace = TRUE)
sample(x,size = 20,replace = TRUE)
?sample
sample(10000,20)

y<-data.frame(name = c('kg','ky','kq'),age = c(20:22),score = c(88,89,78))
y
y[sample(dim(y)[1],2),]
y[sample(dim(y)[1],2),]
y[sample(dim(y)[1],2),]

###################31排序函数####################
#sort(x, decreasing = FALSE):默认返回升序后的序列
#order(x, decreasing = FALSE):默认返回升序后的序列在原始序列的下标
#order(-x):降序排列

a<-c(4,2,1,3)
a
sort(a)
sort(a,decreasing = TRUE)
a
order(a)#下标
a[order(a)]
order(a,decreasing = TRUE)
a[order(a,decreasing = TRUE)]
order(-a)
a[order(-a)]

dat<-data.frame(name = c('kg','ky','kq'),age = c(20:22),score = c(88,89,78))
dat
dat[order(dat$score,decreasing = TRUE),]

###################32apply函数####################
#apply函数作用于向量
x<-cbind(3,c(1:5,4:1))
x
class(x)
apply(x, 1, mean)
apply(x, 2, mean)

arr<-array(c(1:24),dim = c(2,3,4))
arr
apply(arr, 3, sum)

jishu<-function(x){
  return(x%%2==1)
}
a<-c(2,3,4,5,6,7,8,9)
apply(data.frame(dat = a), 1, jishu)
a[apply(data.frame(dat = a), 1, jishu)]
#lapply()函数对列表元素进行循环时特别有用
x<-list(a1 = c(1:8),a2 = c(TRUE,FALSE,FALSE,TRUE,TRUE))
x
lapply(x, sum)
lapply(x, quantile)#分位数
#sapply()函数默认返回的是一个矩阵
sapply(x, quantile)
sapply(x, sum)
#tapply函数
a<-as.factor(c(1,1,2,3,3))
a
tapply(a,a,length)

classes <- c("班级1", "班级1", "班级3", "班级3", "班级1",
             "班级2", "班级3", "班级2", "班级3", "班级1",
             "班级2", "班级2", "班级3", "班级2", "班级1")
age <- c(15.3, 13, 15, 15.6, 14.2,
         13.5, 16, 17.9, 16, 15,
         13, 15.5, 14.7, 14.6, 16)
agem <- tapply(age, as.factor(classes), mean)#求每个班级的学生平均年龄
agem

###################33-35随机数、众数、source####################
#正态分布的随机数
rnorm(10)#标准正态分布
rnorm(20,mean = 3,sd = 4)
#均匀分布的随机数
runif(10)#向量中的每个值服从0~1区间上的均匀分布
runif(20,min = 1,max = 2)
sum(runif(20,min = 1,max = 2))/20
#众数
a<-c(1,4,6,8,3,4,6,6,6,8,6,1)
b<-table(a)
b
names(b)
b == max(b)
names(b)[b == max(b)]
as.numeric(names(b)[b == max(b)])
as.numeric(names(table(a))[table(a) == max(table(a))])#一行代码

max_num<-function(x){
  return(as.numeric(names(table(x))[table(x) == max(table(x))]))
}
max_num(c(1,1,1,1,2,2,2,3,3,4))#函数
#source
getwd()
list.files()
source('众数.R')
max_num(c(1,1,1,1,2,2,2,3,3,4))

###################36自带数据集大汇总####################
#---------向量----------
euro #欧元汇率,长度为11,每个元素都有命名
landmasses #48个陆地的面积,每个都有命名
precip #长度为70的命名向量
rivers #北美141条河流长度
state.abb #美国50个州的双字母缩写
state.area #美国50个州的面积
state.name #美国50个州的全称

#---------因子----------
state.division #美国50个州的分类,9个类别
state.region #美国50个州的地理分类

#---------矩阵、数组----------
euro.cross #11种货币的汇率矩阵
freeny.x #每个季度影响收入四个因素的记录
state.x77 #美国50个州的八个指标
USPersonalExpenditure #5个年份在5个消费方向的数据
VADeaths #1940年弗吉尼亚州死亡率(每千人)
volcano #某火山区的地理信息(10米×10米的网格)
WorldPhones #8个区域在7个年份的电话总数
iris3 #3种鸢尾花形态数据
Titanic #泰坦尼克乘员统计
UCBAdmissions #伯克利分校1973年院系、录取和性别的频数
crimtab #3000个男性罪犯左手中指长度和身高关系
HairEyeColor #592人头发颜色、眼睛颜色和性别的频数
occupationalStatus #英国男性父子职业联系

#---------类矩阵----------
eurodist #欧洲12个城市的距离矩阵,只有下三角部分
Harman23.cor #305个女孩八个形态指标的相关系数矩阵
Harman74.cor #145个儿童24个心理指标的相关系数矩阵

#---------数据框----------
airquality #纽约1973年5-9月每日空气质量
anscombe #四组x-y数据,虽有相似的统计量,但实际数据差别较大
attenu #多个观测站对加利福尼亚23次地震的观测数据
attitude #30个部门在七个方面的调查结果,调查结果是同一部门35个职员赞成的百分比
beaver1 #一只海狸每10分钟的体温数据,共114条数据
beaver2 #另一只海狸每10分钟的体温数据,共100条数据
BOD #随水质的提高,生化反应对氧的需求(mg/l)随时间(天)的变化
cars #1920年代汽车速度对刹车距离的影响
chickwts #不同饮食种类对小鸡生长速度的影响
esoph #法国的一个食管癌病例对照研究
faithful #一个间歇泉的爆发时间和持续时间
Formaldehyde #两种方法测定甲醛浓度时分光光度计的读数
Freeny #每季度收入和其他四因素的记录
datingfrom #配对的病例对照数据,用于条件logistic回归
InsectSprays #使用不同杀虫剂时昆虫数目
iris #3种鸢尾花形态数据
LifeCycleSavings #50个国家的存款率
longley #强共线性的宏观经济数据
morley #光速测量试验数据
mtcars #32辆汽车在11个指标上的数据
OrchardSprays #使用拉丁方设计研究不同喷雾剂对蜜蜂的影响
PlantGrowth #三种处理方式对植物产量的影响
pressure #温度和气压
Puromycin#两种细胞中辅因子浓度对酶促反应的影响
quakes #1000次地震观测数据(震级>4)
randu #在VMS1.5中使用FORTRAN中的RANDU三个一组生成随机数字,共400组。
rock #48块石头的形态数据
sleep #两药物的催眠效果
stackloss #化工厂将氨转为硝酸的数据
swiss #瑞士生育率和社会经济指标
ToothGrowth #VC剂量和摄入方式对豚鼠牙齿的影响
trees #树木形态指标
USArrests #美国50个州的四个犯罪率指标
USJudgeRatings #43名律师的12个评价指标
warpbreaks #织布机异常数据
women #15名女性的身高和体重

#---------列表----------
state.center #美国50个州中心的经度和纬度

#---------类数据框----------
ChickWeight #饮食对鸡生长的影响
CO2 #耐寒植物CO2摄取的差异
DNase #若干次试验中,DNase浓度和光密度的关系
Indometh #某药物的药物动力学数据
Loblolly #火炬松的高度、年龄和种源
Orange #桔子树生长数据
Theoph #茶碱药动学数据

#---------时间序列数据----------
airmiles #美国1937-1960年客运里程营收(实际售出机位乘以飞行哩数)
AirPassengers #Box & Jenkins航空公司1949-1960年每月国际航线乘客数
austres #澳大利亚1971-1994每季度人口数(以千为单位)
BJsales #有关销售的一个时间序列
BJsales.lead #前一指标的先行指标(leading indicator)
co2 #1959-1997年每月大气co2浓度(ppm)
discoveries #1860-1959年每年巨大发现或发明的个数
ldeaths #1974-1979年英国每月支气管炎、肺气肿和哮喘的死亡率
fdeaths #前述死亡率的女性部分
mdeaths #前述死亡率的男性部分
freeny.y #每季度收入
JohnsonJohnson #1960-1980年每季度Johnson & Johnson股票的红利
LakeHuron #1875-1972年某一湖泊水位的记录
lh #黄体生成素水平,10分钟测量一次
lynx #1821-1934年加拿大猞猁数据
nhtemp #1912-1971年每年平均温度
Nile #1871-1970尼罗河流量
nottem #1920-1939每月大气温度
presidents #1945-1974年每季度美国总统支持率
UKDriverDeaths #1969-1984年每月英国司机死亡或严重伤害的数目
sunspot.month #1749-1997每月太阳黑子数
sunspot.year #1700-1988每年太阳黑子数
sunspots  #1749-1983每月太阳黑子数
treering #归一化的树木年轮数据
UKgas #1960-1986每月英国天然气消耗
USAccDeaths #1973-1978美国每月意外死亡人数
uspop #1790–1970美国每十年一次的人口总数(百万为单位)
WWWusage #每分钟网络连接数
Seatbelts #多变量时间序列。和UKDriverDeaths时间段相同,反映更多因素。
EuStockMarkets #多变量时间序列。欧洲股市四个主要指标的每个工作日记录,共1860条记录。

#---------包----------
#包自带有哪些数据集:data(package = '包名')
#查看R所有包的数据情况:data(package = .packages(all.available = TRUE))
data(package = .packages(all.available = TRUE))

###################37-38数据转换、R代码调试####################
#as.character(x)、as.complex(x)、as.numeric(x)或者as.double(x)、as.integer(x)、as.logical(x)(非0都为TRUE)
as.character(123)
as.character(c(1,2,3))
as.complex(3.4)
as.complex(c(1:3))
as.numeric('123')
as.numeric(c('1','2','3'))
as.double(12)
class(as.double(12))
as.integer(c('1.2','2.5','3.8'))
as.logical(1)
as.logical(0)
as.logical(3)
as.logical(-1)
#debug()
#n(next):执行下一行,然后暂停,直接键入“Enter”一样;
#c(continue):如果在循环中,会执行本次循环剩下所有语句,然后进入下一次循环,到该位置继续暂停;
#键入变量名:查看变量值,若与浏览器变量同名,需用print()打印出来看,下面有例子,旁边变量区也可以看;
#where:显示到达当前位置过程中函数的调用序列;
#Q:该命令会退出浏览器,返回正常交互模式。
#eg:
cou <- function(count)
{
  s <- 0
  i <- 1
  while(i<count+1)
  {
    s <- s+i
    i <- i+1
  } 
  return(s)
}
debug(cou)
cou(10)
#browser()
#与debug(f)函数在函数f()入口处进入浏览器而处于调试状态不同,browser()可以插在函数中任一行,
#程序只要运行到该行,就进入调试状态即浏览器会被打开,直到程序结束。
cou <- function(count)
{
  s <- 0
  i <- 1
  while(i<count+1)
  {
    s <- s+i
    browser()
    i <- i+1
  } 
  return(s)
}
cou(10)

 

posted on 2020-04-18 10:26  晨曦生辉耀匕尖  阅读(383)  评论(0编辑  收藏  举报