一文带你掌握数据框常用操作!
数据框是一种二维的数据结构,行表示观测/记录,列表示变量/指标/字段。数据框不同列的数据类型可以不同,但同一列的数据类型要相同,所有列的长度要相同。
数据框创建
ID <- 1:6
grade <- c(1,2,4,3,6,5)
subject <- c("Math","English","Chinese","History","Biology","Chemistry")
score <- c(90,95,92,88,97,91)
df <- data.frame(ID,grade,subject,score)
数据框索引、修改
# 位置方式
df[1,3]
df[,c(1,3)]
df[1:3,2]
# $方式
df$subject
# 名称方式
df[,'subject']
# 交互式修改
df2=edit(df) # edit不改变原始数据
fix(df) # fix改变原始数据
数据框添加、删除变量
# 加载R包中数据集
data("iris")
# 添加变量
iris2 <- transform(iris,variable=Petal.Length*Petal.Width)
# 删除变量
iris2[,-6]
iris2$Species <- NULL
数据框去重复
# 保留每种花的第一个记录
iris3 <- iris[!duplicated(iris$Species),]
数据框排序
# 行按照花萼长度从小到大的次序排
iris2 <- iris[order(iris$Sepal.Length,decreasing = F),]
常用函数
names(iris2)
colnames(iris2)
rownames(iris2)
dim(iris2)
nrow(iris2)
ncol(iris2)
# 查看前几行
head(iris2)
# 查看后几行
tail(iris2)
# 探索数据框结构
str(iris2)
summary(iris2)
# 求和、求平均
colMeans(iris2[,1:4])
colSums(iris2[,1:4])
# 转置
iris3 <- t(iris2)
缺失值
R中缺失值用符号NA(Not Available)表示,缺失值和空字符串的意义不同。
table(is.na(iris2))
# 缺失值
iris2[1,1] <- NA
# 空字符串
iris2[2,1] <- ""
# 移除所有含有缺失值的观测
iris2 <- na.omit(iris2)
思考题:
数据框和列表有哪些不同?