当前位置:首页>科技>r语言实战每章小结R语言实战自学笔记-数据框2
发布时间:2026-07-20阅读(1)
先来创建下面操作需要用到的矩阵和数据框,下面我们就来说一说关于r语言实战每章小结?我们一起去了解并探讨一下这个问题吧!

r语言实战每章小结
2.2.4 数据框先来创建下面操作需要用到的矩阵和数据框
b3 <- matrix(1:15, 3, 5) # 构建矩阵b3,1到15的数值,3行,5列。b3 # 显示b3。
## [,1] [,2] [,3] [,4] [,5]## [1,] 1 4 7 10 13## [2,] 2 5 8 11 14## [3,] 3 6 9 12 15
name <- c("one", "two", "three", "four", "five", "six", "seven", "eight") # 构建字符型向量name。factor <- c("a", "b", "a", "b", "a", "b", "a", "b")values <- c(1, 2, 3, 4, 5, 6, 7, 8) # 构建数值型向量values。values2 <- c(8, 7, 6, 5, 4, 3, 2, 1) # 构建数值型向量values2。A <- data.frame(name, factor, values, values2, row.names = c("r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8")) # 创建数据框A。A # 显示结果A。
## name factor values values2## r1 one a 1 8## r2 two b 2 7## r3 three a 3 6## r4 four b 4 5## r5 five a 5 4## r6 six b 6 3## r7 seven a 7 2## r8 eight b 8 1
str(A) # 查看数据结构
## data.frame: 8 obs. of 4 variables:## $ name : chr "one" "two" "three" "four" ...## $ factor : chr "a" "b" "a" "b" ...## $ values : num 1 2 3 4 5 6 7 8## $ values2: num 8 7 6 5 4 3 2 1
is.data.frame(A) # is.data.frame()用于判定数据是否是数据框。若是,返回值为TURE,不是,返回FALSE。
## [1] TRUE
b3 <- as.data.frame(b3) # as.data.frame()用于将数据转换为数据框。这里将矩阵b3转为数据框。b3 # 显示结果。
## V1 V2 V3 V4 V5## 1 1 4 7 10 13## 2 2 5 8 11 14## 3 3 6 9 12 15
colnames(b3)[3] <- "value" # 修改数据框y3第3列列名为value。要修改行名用rownames(A)[行号,列号] <- “新名称”。b3 # 显示结果。
## V1 V2 value V4 V5## 1 1 4 7 10 13## 2 2 5 8 11 14## 3 3 6 9 12 15
colnames(b3) <- c("列1", "列2", "列3", "列4", "列5") # 对数据框b3的所有列重命名。b3 # 显示结果。
## 列1 列2 列3 列4 列5## 1 1 4 7 10 13## 2 2 5 8 11 14## 3 3 6 9 12 15
A # 显示数据框A。
## name factor values values2## r1 one a 1 8## r2 two b 2 7## r3 three a 3 6## r4 four b 4 5## r5 five a 5 4## r6 six b 6 3## r7 seven a 7 2## r8 eight b 8 1
t(A) # 数据框转置。
## r1 r2 r3 r4 r5 r6 r7 r8 ## name "one" "two" "three" "four" "five" "six" "seven" "eight"## factor "a" "b" "a" "b" "a" "b" "a" "b" ## values "1" "2" "3" "4" "5" "6" "7" "8" ## values2 "8" "7" "6" "5" "4" "3" "2" "1"
A[1,] <- c(1, 1, 1, 1) # 修改数据框A第1行的数据。A # 显示结果A。
## name factor values values2## r1 1 1 1 1## r2 two b 2 7## r3 three a 3 6## r4 four b 4 5## r5 five a 5 4## r6 six b 6 3## r7 seven a 7 2## r8 eight b 8 1
A[,2] <- c(2, 4, 6, 8, 10, 12, 14, 16) # 修改数据框A第2列的数据。A # 显示结果A。
## name factor values values2## r1 1 2 1 1## r2 two 4 2 7## r3 three 6 3 6## r4 four 8 4 5## r5 five 10 5 4## r6 six 12 6 3## r7 seven 14 7 2## r8 eight 16 8 1
A[1,1] <- "one" # 修改第1列第1行的值。A # 显示结果A。
## name factor values values2## r1 one 2 1 1## r2 two 4 2 7## r3 three 6 3 6## r4 four 8 4 5## r5 five 10 5 4## r6 six 12 6 3## r7 seven 14 7 2## r8 eight 16 8 1
A$values <- as.character(A$values) # 将数据框A中values列类型从数值型改为字符型。class(A$values) # 查看结果。
## [1] "character"
A$values <- as.numeric(A$values) # 从字符型转换会数值型。class(A$values) # 查看结果。
## [1] "numeric"
A[9,] <- c("nine","a", 18, 0) # 给数据框A增加第9行。A # 显示结果。
## name factor values values2## r1 one 2 1 1## r2 two 4 2 7## r3 three 6 3 6## r4 four 8 4 5## r5 five 10 5 4## r6 six 12 6 3## r7 seven 14 7 2## r8 eight 16 8 1## 9 nine a 18 0
A[,4] <- c(1, 3, 5, 7, 9, 11, 13, 15, 17) # 增加新列。A # 显示结果。
## name factor values values2## r1 one 2 1 1## r2 two 4 2 3## r3 three 6 3 5## r4 four 8 4 7## r5 five 10 5 9## r6 six 12 6 11## r7 seven 14 7 13## r8 eight 16 8 15## 9 nine a 18 17
A$values1 <- c(1, 1, 2, 2, 3, 3, 4, 4, 5) # 增加新列,列名为values2。A # 显示结果。
## name factor values values2 values1## r1 one 2 1 1 1## r2 two 4 2 3 1## r3 three 6 3 5 2## r4 four 8 4 7 2## r5 five 10 5 9 3## r6 six 12 6 11 3## r7 seven 14 7 13 4## r8 eight 16 8 15 4## 9 nine a 18 17 5
A <- data.frame(A, values3 = c("a", "b", "a", "b", "a", "b", "a", "b", "a")) # 在原有数据框的基础上使用data.frame()函数新增列。A # 显示结果。
## name factor values values2 values1 values3## r1 one 2 1 1 1 a## r2 two 4 2 3 1 b## r3 three 6 3 5 2 a## r4 four 8 4 7 2 b## r5 five 10 5 9 3 a## r6 six 12 6 11 3 b## r7 seven 14 7 13 4 a## r8 eight 16 8 15 4 b## 9 nine a 18 17 5 a
A <- A[-9,] # 删除第9行。A # 显示结果。
## name factor values values2 values1 values3## r1 one 2 1 1 1 a## r2 two 4 2 3 1 b## r3 three 6 3 5 2 a## r4 four 8 4 7 2 b## r5 five 10 5 9 3 a## r6 six 12 6 11 3 b## r7 seven 14 7 13 4 a## r8 eight 16 8 15 4 b
A <- A[,-4] # 删除第4列数据。A # 显示结果。
## name factor values values1 values3## r1 one 2 1 1 a## r2 two 4 2 1 b## r3 three 6 3 2 a## r4 four 8 4 2 b## r5 five 10 5 3 a## r6 six 12 6 3 b## r7 seven 14 7 4 a## r8 eight 16 8 4 b
A[order(A$values1),] # 数据框排序,按照values1进行,order函数默认是升序。
## name factor values values1 values3## r1 one 2 1 1 a## r2 two 4 2 1 b## r3 three 6 3 2 a## r4 four 8 4 2 b## r5 five 10 5 3 a## r6 six 12 6 3 b## r7 seven 14 7 4 a## r8 eight 16 8 4 b
A[order(-A$values1),] # 对数据框A以values1变量降序排列。
## name factor values values1 values3## r7 seven 14 7 4 a## r8 eight 16 8 4 b## r5 five 10 5 3 a## r6 six 12 6 3 b## r3 three 6 3 2 a## r4 four 8 4 2 b## r1 one 2 1 1 a## r2 two 4 2 1 b
A[order(A$name, decreasing = T),] # 当排序依据变量为数值型时,前面加-就是按照降序排列,但是当变量为字符型时,就需在order函数中指定参数decreasing,T为TRUE,即降序。本例中为英文字母,所以降序按照英文字母首字母排序。
## name factor values values1 values3## r2 two 4 2 1 b## r3 three 6 3 2 a## r6 six 12 6 3 b## r7 seven 14 7 4 a## r1 one 2 1 1 a## r4 four 8 4 2 b## r5 five 10 5 3 a## r8 eight 16 8 4 b
A[order(A$values, -A$values1),] # 以values升序排列,以values1为降序排列。
## name factor values values1 values3## r1 one 2 1 1 a## r2 two 4 2 1 b## r3 three 6 3 2 a## r4 four 8 4 2 b## r5 five 10 5 3 a## r6 six 12 6 3 b## r7 seven 14 7 4 a## r8 eight 16 8 4 b
sort(A$values3) # 也可以用sort()函数进行排序。使用方法与order基本相同。
## [1] "a" "a" "a" "a" "b" "b" "b" "b"
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图