R语言中创建数据框、数据框的常规操作


1、利用data.frame函数随机生成数据框,dat1为生成的数据框

c1 <- 1:5 
c2 <- c(2,5,1,8,6) c3 <- c("w","q","r","t","p") c4 <- c("i","w","u","z","v") dat1 <- data.frame(c1,c2,c3,c4) ##生成数据框 dat1 c1 c2 c3 c4 1  1  2 w i 2  2  5 q w 3  3  1 r u 4  4  8 t z 5  5  6  p  v

 

2、查看变量类型及维度

class(dat1) [1] "data.frame" dim(dat1) [1] 5 4

变量类型为data.frame、数据维度为5行4列。

 

3、提取数据框中特定数据

dat1[1,] ##提取第一行 c1 c2 c3 c4 1  1  2 w i dat1[2,] ##提取第二行 c1 c2 c3 c4 2  2  5 q w dat1[,1] ##提取第一列 [1] 1 2 3 4 5 dat1[,2] ##提取第二列 [1] 2 5 1 8 6 dat1[1] ##仍然是提取第一列,和dat[,1]数据类型不同 c1 1  1
2  2
3  3
4  4
5  5 dat1[2] ##仍然是提取第二列,同上 c2 1  2
2  5
3  1
4  8
5  6 dat1[1:3,] ##提取1至3行数据 c1 c2 c3 c4 1  1  2 w i 2  2  5 q w 3  3  1 r u dat1[c(1,3,5),] ##提取1、3,5行数据 c1 c2 c3 c4 1  1  2 w i 3  3  1 r u 5  5  6 p v dat1[,1:3] ##提取1至3列数据 c1 c2 c3 1  1  2 w 2  2  5 q 3  3  1 r 4  4  8 t 5  5  6 p dat1[1:3] ## 提取1至3列数据 c1 c2 c3 1  1  2 w 2  2  5 q 3  3  1 r 4  4  8 t 5  5  6  p

 

3、删除数据框中特定数据

dat1[-1,] ##删除第一行数据 c1 c2 c3 c4 2  2  5 q w 3  3  1 r u 4  4  8 t z 5  5  6 p v > dat1[-2,] ##删除第二行数据 c1 c2 c3 c4 1  1  2 w i 3  3  1 r u 4  4  8 t z 5  5  6 p v > dat1[-c(1,2),] ##删除1至2行数据 c1 c2 c3 c4 3  3  1 r u 4  4  8 t z 5  5  6 p v > dat1[,-1] ##删除第一列数据 c2 c3 c4 1  2 w i 2  5 q w 3  1 r u 4  8 t z 5  6 p v > dat1[-1] ##仍是删除第一列数据 c2 c3 c4 1  2 w i 2  5 q w 3  1 r u 4  8 t z 5  6 p v > dat1[,-2] ##删除第二列数据 c1 c3 c4 1  1 w i 2  2 q w 3  3 r u 4  4 t z 5  5 p v > dat1[-2] ##仍是删除第二列数据 c1 c3 c4 1  1 w i 2  2 q w 3  3 r u 4  4 t z 5  5 p v > dat1[,-c(1:2)] ##删除1至2列数据 c3 c4 1 w i 2 q w 3 r u 4 t z 5 p v > dat1[-c(1:2)] ##仍是删除1至2列数据 c3 c4 1 w i 2 q w 3 r u 4 t z 5  p  v

 

4、重命名行名、列名

rownames(dat1) ##查看行名 [1] "1" "2" "3" "4" "5"
colnames(dat1) ##查看列名 "c1" "c2" "c3" "c4"
rownames(dat1) <- c("d","x","u","f","e") ## 重命行名 rownames(dat1) [1] "d" "x" "u" "f" "e"
rownames(dat1)[2] ##查看第二个行名 [1] "x"
rownames(dat1)[2] <- "xxxx" ##重命名第二个行名
rownames(dat1) [1] "d"    "xxxx" "u"    "f"    "e"   
colnames(dat1) <- c("e","q","i","a") ##重命名列名 colnames(dat1) [1] "e" "q" "i" "a"
colnames(dat1)[3] ##查看第三个列名 [1] "i"
colnames(dat1)[3] <- "xxxx" ##重命名第三个列名
colnames(dat1) [1] "e"    "q"    "xxxx" "a" 

 

5、数据框转置,(行列互换)

dat1 <- data.frame(c1,c2,c3,c4) ##重新生成数据框 dat1 c1 c2 c3 c4 1 1 2 w i 2 2 5 q w 3 3 1 r u 4 4 8 t z 5 5 6 p v t(dat1) ## 数据框转置 [,1] [,2] [,3] [,4] [,5] c1 "1" "2" "3" "4" "5" c2 "2" "5" "1" "8" "6" c3 "w" "q" "r" "t" "p" c4 "i" "w" "u" "z" "v"

 

6、依据特定条件过滤数据框数据

c1 <- c(1,3,1,1,3,9) c2 <- c(2,2,2,8,6,7) c3 <- c("w","w","r","w","p","u") c4 <- c("i","i","u","z","v","y") dat1 <- data.frame(c1,c2,c3,c4) ##重新生成一个测试数据框 dat1 c1 c2 c3 c4 1  1  2 w i 2  3  2 w i 3  1  2 r u 4  1  8 w z 5  3  6 p v 6  9  7 u y class(dat1) ##查看类型 [1] "data.frame" dim(dat1) ##查看数据维度 [1] 6 4 dat1[dat1$c1 == 1,] ##提取数据框中第一列中等于1的数据 c1 c2 c3 c4 1  1  2 w i 3  1  2 r u 4  1  8 w z dat1[dat1$c1 == 3,] ##提取数据框中第一列中等于3的数据 c1 c2 c3 c4 2  3  2 w i 5  3  6 p v dat1[dat1$c3 == "w",] ##提取数据框中第三列中等于w的数据 c1 c2 c3 c4 1  1  2 w i 2  3  2 w i 4  1  8 w z dat1[dat1$c1 == 1 & dat1$c2 == 2,] ##提取数据框中第一列等于1而且第二列等于2的数据 c1 c2 c3 c4 1  1  2 w i 3  1  2 r u dat1[dat1$c1 == 1 & dat1$c2 ==2 & dat1$c3 == "w",] ##提取数据框中第一列等于1、第二列等于2、并且第三列等于w的数据 c1 c2 c3 c4 1  1  2 w i dat1 c1 c2 c3 c4 1  1  2 w i 2  3  2 w i 3  1  2 r u 4  1  8 w z 5  3  6 p v 6  9  7 u y dat1[dat1$c1 ==1 | dat1$c2 == 6,] ##提取数据框中第一列等于1或者第二列等于6的数据 c1 c2 c3 c4 1  1  2 w i 3  1  2 r u 4  1  8 w z 5  3  6 p v dat1[dat1$c1 ==1 | dat1$c2 == 6 | dat1$c4 == "i",] ##提取数据框中第一列等于1或者第二列等于6或者第四列等于i的数据 c1 c2 c3 c4 1  1  2 w i 2  3  2 w i 3  1  2 r u 4  1  8 w z 5  3  6  p  v

### "&"号在R中表示而且,"|" 号表示或者。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM