R语言学习系列06修改变量名数据排序随机抽样Word格式.docx
- 文档编号:5907767
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:9
- 大小:63.51KB
R语言学习系列06修改变量名数据排序随机抽样Word格式.docx
《R语言学习系列06修改变量名数据排序随机抽样Word格式.docx》由会员分享,可在线阅读,更多相关《R语言学习系列06修改变量名数据排序随机抽样Word格式.docx(9页珍藏版)》请在冰点文库上搜索。
〔1〕假设数据集为矩阵或数据框
将翻开“数据编辑器〞,单击要修改的变量名,在弹出的“变量编辑器〞修改即可:
〔2〕假设数据集为列表
将交互式编辑器为一个记事本,只需修改“.Names〞之后对应的变量名即可:
2.用函数rename()
reshape包中的函数rename(),用来修改数据库和列表的变量名,但不能修改矩阵的变量名,根本格式为:
rename(x,c(oldname="
newname"
...))
其中,oldname为原变量名,newname为新变量名。
library(reshape)
rename(score,c(pl="
chinese"
))
studentgendermathEngchinese
1AM908866
2BM707859
3CF8069NA
4DF609888
rename(score.list,c(pl="
$student
[1]ABCD
Levels:
ABCD
$gender
[1]MMFF
FM
$math
[1]90708060
$Eng
[1]88786998
$chinese
[1]6659NA88
注意:
原数据集中的变量名并未被修改。
3.用函数names()
和rename()一样可用来修改数据框和列表的变量名,不能修改矩阵的变量名;
区别在于:
names()会在原数据集中修改变量名。
其根本格式为:
names(x)[i]<
-"
names(score)[5]="
score
4.用函数colnames()和rownames()
用来修改矩阵的变量名〔行名和列名〕,也能修改数据框的行名和列名。
根本格式为:
rownames(x)[i]<
colnames(score)[5]="
Chinese"
studentgendermathEngChinese
rownames(score)=letters[1:
4]
aAM908866
bBM707859
cCF8069NA
dDF609888
二、数据排序
1.函数sort(),根本格式:
sort(x,decreasing=FALSE,na.last=FALSE,...)
其中,x为排序对象〔数值型或字符型〕;
decreasing默认为FALSE即升序,TURE为降序;
na.last默认为FALSE〔NA值将被删除〕,假设为TRUE,那么将向量中的NA值放到序列末尾。
sort(score$math)
[1]60708090
sort(score$math,decreasing=TRUE)
[1]90807060
sort(score$Chinese,na.last=TRUE)
[1]596688NA
2.函数rank()
返回值是该向量中对应元素的秩〔排名〕,根本格式为:
rank(x,na.last=FALSE,ties.method=...)
其中,ties.method指定对数据集中的重复数据的秩的处理方式:
“average〞——取平均值秩〔默认〕
“first〞——位于前面的数据的秩取小,依次递增
“random〞——随机定义重复秩
“max〞——取最大重复秩
“min〞——取最小重复秩
x<
-c(3,4,2,5,5,3,8,9)
rank(x)
[1]2.54.01.05.55.52.57.08.0
rank(x,ties.method="
first"
)
[1]24156378
random"
[1]34165278
max"
[1]34166378
3.函数order()
对数据进展排序,返回值是对应“排名〞的元素所在向量中的位置,即最小值、次小值、...、最大值所在的位置。
order(x,decreasing=FALSE,na.last=FALSE,...)
不同于前两个函数,order()还可以对数据框进展排序:
data_frame[order(data_frame$v1,data_frame$v2,…),]
假设v1值一样,那么按v2升序排序;
要将升序改为降序,在变量前添加负号,或用decreasing=TRUE即可。
order(score$math)
[1]4231
score[order(score$math),]
score[order(-score$math),]
4.函数rev()
求逆序,将序列进展反转,即1,2,3变成3,2,1
三、简单随机抽样
用少量数据测试数据集时,常用随机抽样方法从整体中选出局部样本数据。
简单随机抽样,是指从总体N个样本中任意抽取n个样本,每个样本被抽中的概率相等;
分为重复抽样〔有放回〕、不重复抽样〔不放回〕。
使用sampling包实现。
1.有放回简单随机抽样
函数srswr(),根本格式为:
srswr(n,N)
表示从总体N中有放回地随机抽取n个样本,返回一个长度为N的向量,每个分量分别表示各元素被抽取到的次数。
library(sampling)
LETTERS
[1]"
"
E"
G"
H"
I"
J"
K"
[12]"
L"
N"
O"
P"
Q"
R"
S"
T"
U"
V"
[23]"
W"
X"
Y"
Z"
s<
-srswr(10,26)
s
[1]20110000100200030000000
[24]000
ind<
-(1:
26)[s!
=0]#被抽到的样本编号
ind
[1]13491216
n<
-s[s!
=0]#被抽到的样本的被抽到的次数
n
[1]211123
-rep(ind,times=n)#按次数重复被抽到的样本编号
[1]113491212161616
sample<
-LETTERS[ind]#被抽到的字母
sample
2.不放回简单随机抽样
函数srswor(),格式和返回值同srswr(),注意返回值向量中只有0和1.
-srswor(10,26)
[1]10000101001000000111001
[24]101
=0]
[1]16811181920232426
-LETTERS[ind]
3.函数simple()
实现有放回和不放回的简单随机抽样,根本格式为:
sample(x,size,replace=FALSE)
其中,x为数据集;
size为抽取样本数;
replace指定是否放回,默认为FALSE〔不放回〕,TURE为有放回。
也可对数据进展随机分组:
sample(num,size,replace=TRUE,prob=NULL)
其中,num为分组数;
replace必须为TRUE;
prob为权重向量〔分组比例〕。
sample(LETTERS,10,replace=TRUE)#有放回简单随机抽样
sample(LETTERS,10,replace=FALSE)#无放回简单随机抽样
#将26个字母随机分为两组,比例是0.7:
0.3
-sample(2,26,replace=TRUE,prob=c(0.7,0.3))
[1]11122111211221211111122
[24]111
sample1<
-LETTERS[n==1]#第1组
sample1
sample2<
-LETTERS[n==2]#第2组
sample2
[1]"
主要参考文献:
[1]良均,佳标,坦,肖刚.R语言与数据挖掘.机械工业,2021.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习 系列 06 修改 变量 数据 排序 随机 抽样
![提示](https://static.bingdoc.com/images/bang_tan.gif)