1、从大的数据文件中截取出自己想要的子集
1.1 取连续数据
who<-read.csv("WHO.csv") #读取数据文件
who1<-who[c(1:10),c(1:10)]#读取数据的前十行前十列
1.2 取间断数据
who<-read.csv("WHO.csv") #读取数据文件
who2<-who[c(1,3,5,7,9),c(2,4,6,7,8)]#读取数据的前1,3,5,7,9行前2,4,6,7,8列
1.3 取符合条件的数据
例子1
who<-read.csv("WHO.csv") #读取数据文件
who3<-who[which(who$Continent==7)]#读取列名Continent等于7的数据
例子2
who4<-who[which(who$CountryID>50 &who$CountryID<=100),]#读取列名CountryID大于50但小于100的数据
除此之外,这个例子也可以使用subset函数
who4<-subset(who,who$CountryID>50 &who$CountryID<=100)#读取列名CountryID大于50但小于100的数据
1.4 对数据进行随机抽样
sample函数很重要,对于机器学习之类的都需要将数据集划分为训练集和验证集,这在R中就可以通过sample函数实现。
sample函数:对数据进行随机抽样,默认是无放回抽样,replace为真时是有放回抽样
1.4.1 sample函数抽取向量
x<-c(1:100)
sample(x,30)#从x中抽取三十个数据
1.4.2 sample函数抽取数据框
who5<-who[sample(who$CountryID,30,replace=F),]
View(who5)
1.5 删除固定某行或某列数据
1.5.1 负索引方式
这种方法不破坏原数据,说是删除,其实更贴切的表述应该是取出去除这些行或者列的数据
例子1
mtcars[c(-1:-5),]#取出不包含数据前五行的数据
例子2
mtcars[,c(-1:-5)]#取出不包含数据前五列的数据
1.5.2 将行值或者列值赋空值
将对应行或列赋值为NULL,这样相当于变相的清空数据
mtcars$mpg<-NULL#将某列赋值为NULL
1.6 数据框添加固定某行或某列数据
1.6.1 data.frame函数合并数据
将原始数据和要添加的某列用data.frame函数重新生成新的数据框
data.frame(USArrests,state.division)#将state.division列添加到原始数据集并且合并成新的数据框
1.6.2 cbind和rbind函数添加某列或者某行(row横的,column竖的)
cbind和rbind函数不仅适用于数据框也适用于矩阵
- 添加列
cbind(USArrests,state.division)#在原始数据集上添加state.division列
- 添加行
添加行时需要,数据的列名要一致且列的个数相同,否则会报错。
data1<-head(USArrests,20)
data2<-tail(USArrests,20)
rbind(data1,data2)#在原始数据集上添加state.division列
##
data3<-head(cbind(USArrests,state.division),20)
rbind(data1,data3)#列数不同合并时则会报错
图1 报错截图
1.7 删除重复数据
在数据完成合并后,会出现一些重复的行,重复的数据有时会影响分析结果,这时候我们有两种方法将重复的行去除
- unique函数
unique(data4)#取出data4中非重复部分
- duplicated函数
duplicated函数用于判断数据中是否包含重复值,是重复部分则结果为TRUE,否则则为FALSE
而逻辑符号!表示非的意思,!duplicated()则正好相反,表示不重复部分则结果为TRUE,否则则为FALSE。
data4[!duplicated(data4),]#取出data4中非重复部分
2、数据生成表格
若想要对数据生成表格,则用两种方式
-
环境变量单击变量右侧表格
图1 点击图标生成表格 - View(变量名)
View(who1)