设为首页 加入收藏

TOP

R语言dataframe的常用操作总结(二)
2019-08-15 00:09:20 】 浏览:220
Tags:语言 dataframe 常用 操作 总结
2 20 94 17 #删除df第3行 ( df <- df[-3,] ) 18 > df.tmp <- df[-3,] 19 > df.tmp 20 ID Class Chinese Math English 21 1 1 2 65 59 23 22 2 2 2 37 38 45 23 4 4 1 90 49 87 24 5 5 2 20 71 34 25 6 6 3 89 99 46 26 7 7 1 94 38 87 27 8 8 2 66 77 95 28 9 9 3 62 93 43 29 10 10 1 20 21 76 30 11 11 2 20 65 23 31 12 12 3 20 12 94

五、添加

1、添加行

data.frame[新行号,] <- 行值

 1 > df[13,] <- c(13,2,62,19,38) #新增13行数据
 2 > df
 3    ID Class Chinese Math English
 4 1   1     2      65   59      23
 5 2   2     2      37   38      45
 6 3   3     3      65   76      67
 7 4   4     1      90   49      87
 8 5   5     2      20   71      34
 9 6   6     3      89   99      46
10 7   7     1      94   38      87
11 8   8     2      66   77      95
12 9   9     3      62   93      43
13 10 10     1      20   21      76
14 11 11     2      20   65      23
15 12 12     3      20   12      94
16 13 13     2      62   19      38

若想对行进行复制,可以采用重复行号的方法

 1 > df <- df[c(1,1:12),]      #复制第1行1次
 2 > df
 3     ID Class Chinese Math English
 4 1    1     2      65   59      23
 5 1.1  1     2      65   59      23
 6 2    2     2      37   38      45
 7 3    3     3      65   76      67
 8 4    4     1      90   49      87
 9 5    5     2      20   71      34
10 6    6     3      89   99      46
11 7    7     1      94   38      87
12 8    8     2      66   77      95
13 9    9     3      62   93      43
14 10  10     1      20   21      76
15 11  11     2      20   65      23
16 12  12     3      20   12      94

可使用rep()函数方便进行多行的复制

 1 > df <- df[rep(1:12,each = 2),]     #对每行数据复制1次
 2 > df
 3      ID Class Chinese Math English
 4 1     1     2      65   59      23
 5 1.1   1     2      65   59      23
 6 2     2     2      37   38      45
 7 2.1   2     2      37   38      45
 8 3     3     3      65   76      67
 9 3.1   3     3      65   76      67
10 4     4     1      90   49      87
11 4.1   4     1      90   49      87
12 5     5     2      20   71      34
13 5.1   5     2      20   71      34
14 6     6     3      89   99      46
15 6.1   6     3      89   99      46
16 7     7     1      94   38      87
17 7.1   7     1      94   38      87
18 8     8     2      66   77      95
19 8.1   8     2      66   77      95
20 9     9     3      62   93      43
21 9.1   9     3      62   93      43
22 10   10     1      20   21      76
23 10.1 10     1      20   21      76
24 11   11     2      20   65      23
25 11.1 11     2      20   65      23
26 12   12     3      20   12      94
27 12.1 12     3      20   12      94

还可采用rbind()函数,后续会有示例

2、添加列

data.frame$新列名 <- 列值

 1 > df$Physics <- c(23,34,67,23,56,67,78,23,54,56,67,34)
 2 > df
 3    ID Class Chinese Math English Physics
 4 1   1     2      65   59      23      23
 5 2   2     2      37   38      45      34
 6 3   3     3      65   76      67      67
 7 4   4     1      90   49      87      23
 8 5   5     2      20   71      34      56
 9 6   6     3      89   99      46      67
10 7   7     1      94   38      87      78
11 8   8     2      66   77      95      23
12 9   9     3      62   93      43      54
13 10 10     1      20   21      76      56
14 11 11     2      20   65      23      67
15 12 12     3      20   12      94      34

data.frame[,新列号] <- 列值

 1 > df[,7] <- c(1:12)
 2 > df
 3    ID Class Chinese Math English Physics V7
 4 1   1     2      65   59      23      23     1
 5 2   2     2      37   38      45      34     2
 6 3   3     3      65   76      67      67     3
 7 4   4     1      90   49      87      23     4
 8 5   5     2      20   71      34      56     5
 9 6   6     3      89   99      46      67     6
10 7   7     1      94   38      87      78     7
11 8   8     2      66   77      95      23     8
12 9   9     3      62   93      43      54     9
13 10 10     1      20   21      76      56    10
14 11 11     2      20   65      23      67    11
15 12 12     3      20   12      94      34    12

还可用dplyr包中的mutate()函数

 1 > mutate(df,Chemistry = Chinese + Math + English + Physics)
 2    ID Class Chinese Math English Physics V7 Chemistry
 3 1   1     2      65   59      23      23      1       170
 4 2   2     2      37   38      45      34      2       154
 5 3   3     3      65   76      67      67      3       275
 6 4   4     1      90   49      87      23      4       249
 7 5   5     2      20   71      34      56      5       181
 8 6   6     3      89   99      46      67      6       301
 9 7   7     1      94   38      87      78      7       297
10 8   8     2      66   77      95      23      8       261
11 9   9     3      62   93      43      54      9       252
12 10 10     1      20   21      76      56     10       173
13 11 11     2      20   65      23      67     11       175
14 12 12     3      20   12      94      34     12       160

还可采用cbind()函数,后续会有示例

六、dplyr包常用函数

 1 > df  #原数据
 2    ID Class Chinese Math English
 3 1   1     2      65   59      23
 4 2   2     2      37   38      45
 5 3   3     3      65   76      67
 6 4   4     1      90   49      87
 7 5   5     2      20   71      34
 8 6   6     3      89   99      46
 9 7   7     1      94   38      87
10 8   8     2      66   77      95
11 9   9     3      62   93      43
12 10 10     1      20   21      76
13 11 11     2      20   65      23
14 12 12     3      20   12      94

1、arrange() 排序

arrange(.data, ...)

arrange(.data, ..., .by_group = FALSE)

 1 > arrange(df,Chinese)  #按语文成绩由小到大排序
 2    ID Class Chinese Math English
 3 1   5     2      20   71      34
 4 2  10     1      20   21      76
 5 3  11     2      20   65      23
 6 4  12     3      20   12      94
 7 5   2     2      37   38      45
 8 6   9     3      62   93      43
 9 7   1     2      65   59      23
10 8   3     3      65   76      67
11 9   8     2      66   77      95
12 10  6     3      89   99      46
13 11  4     1      90   49      87
14 12  7     1      94   38      87

函数中第一个是待排序的数据框,之后依次是变量,且变量优先级逐渐降低,如语文、数学成绩进行排序

 1 > arrange(df,Chinese,Math)  #依次按语文、数学成绩由小到大排序
 2    ID Class Chinese Math English
 3 1  12     3      20   12      94
 4 2  10     1      20   21      76
 5 3  11     2      20   65      23
 6 4   5     2      20   71      34
 7 5   2     2      37   38      45
 8 6   9     3      62   93      43
 9 7   1     2      65   59      23
10 8   3     3      65   76      67
11 9   8     2      66   77      95
12 10  6     3      89   99      4
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇D02-R语言基础学习 下一篇R数据分析(一)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目