创建数据框
数据框是R语言的一种基础数据格式,通常excel等表格形式数据读入后都是数据框格式。
下例创建了一个3列5行的数据框,列的名字分别是site、season、pH
my.dataset <- data.frame(
site = c('A', 'B', 'A', 'A', 'B'),
season = c('Winter', 'Summer', 'Summer', 'Spring', 'Fall'),
pH = c(7.4, 6.3, 8.6, 7.2, 8.9))
重命名数据框列名
#批量重命名
names(my.dataset) <-c('a','b','c')
#将第一列列名赋值为season
colnames(my.dataset)[1] <- 'season'
#批量给列名增加M字符
foo1 <- function(x) paste('M',x,sep="")
colnames(part2) <- lapply(names(part2),foo1)
数据框数据提取
- 提取某行某列的数据
#取第3行第2列的数据
my.dataset[3,2]
#取第3行的数据
my.dataset[3,]
#取第2列的数据
my.dataset[,2]
#取第1列到第3列的数据
my.dataset[,1:3]
- 条件提取
按字段值提取
#取pH值大于7的所有行
my.dataset<-subset(my.dataset, pH <7)
my.dataset[my.dataset$pH > 7,]
my.dataset[my.dataset$pH!=-0.01,]
allrate <- data.frame(ph=c(1,NA,'D'),pd=c(1,2,3))
#取hotel_id,hotel_url
a1<-subset(data1,select=c(hotel_id,hotel_url))
#筛选所有存在NA的行
allrate[is.na(allrate),]
#筛选所有的NA,并赋值为0
allrate[is.na(allrate)] <- 0
allrate[allrate==-Inf] <- -1
- 模糊匹配
按字段值在某个集合提取
#取pH值在(7.4,6.3)集合中的所有列
isph <- c(7.4,6.3)
my.dataset[which(my.dataset$pH %in% isph),]
#取pH值在(7.4,6.3)集合中的site列
my.dataset[which(my.dataset$pH %in% isph),site]
选取S9列值为100-299元,B15的值为300-399元或300-399元或500元以上
a18 <- data[(data$S9=='100-299')&(data$B15 %in% c('300-399元','300-399元','500元以上')),]
- 按一定规律提取数据
#提取16,16+21,16+2*21,,,直到390
i <- seq(16,390,21)
arpu <- data[,i]
- 删除数据
#删除第3列
data <- data[,-3]
#剔除掉第1,2,18列
arpu <- arpu[,-c(1,2,18)]
#剔除掉第1,2,3,,4,5,18行
arpu <- arpu[-c(1:5,18),]
- 数据框添加列
#这种方式返回的是矩阵
allrate <- cbind(allrate,rate)
#往allrate里添加一列,列名为actdays
allrate <- data.frame(allrate,actdays=rate)