您好,读者! 在本文中,我们将仔细研究 R 编程的一个重要概念 - 使用 R melt() 和 cast() 函数的 ** Reshaping 数据。
R melt() 和 cast() 函数可以帮助我们将数据框架中的数据重新塑造成任何自定义形状。
使用 R melt() 和 cast() 函数
讓我們詳細瞭解這兩個功能吧!這裡我們去!
R Melt() 函数
R编程中的melt() 函数
是一个内置的函数,它使我们能够以用户定义的方式重新塑造和延长数据框架(/community/tutorials/data-frames-in-r-programming)。
看看下面的语法!
合成:**
1melt(data-frame, na.rm = FALSE, value.name = “name”, id = 'columns')
我们将数据框转移到重塑到函数,并将na.rm = FALSE作为默认值,这意味着NA值不会被忽视。
此外,我们将新变量/列名转移到 value.name 参数中,将从函数中获得的延长值存储在其中。
ID 参数被设置为将重塑发生的数据框的列名。
** 例子:**
在本示例中,我们将使用MASS、reshape2 和 reshape
库。创建数据框之后,我们将与列 A 和列 B 相关的数据框上应用 melt() 函数。
1rm(list = ls())
2
3install.packages("MASS")
4install.packages("reshape2")
5install.packages("reshape")
6
7library(MASS)
8library(reshape2)
9library(reshape)
10
11A <- c(1,2,3,4,2,3,4,1)
12B <- c(1,2,3,4,2,3,4,1)
13a <- c(10,20,30,40,50,60,70,80)
14b <- c(100,200,300,400,500,600,700,800)
15data <- data.frame(A,B,a,b)
16
17print("Original data frame:\n")
18print(data)
19
20melt_data <- melt(data, id = c("A","B"))
21
22print("Reshaped data frame:\n")
23print(melt_data)
出发点:**
1[1] "Original data frame:\n"
2 A B a b
31 1 1 10 100
42 2 2 20 200
53 3 3 30 300
64 4 4 40 400
75 2 2 50 500
86 3 3 60 600
97 4 4 70 700
108 1 1 80 800
11
12[1] "Reshaped data frame:\n"
13> print(melt_data)
14 A B variable value
151 1 1 a 10
162 2 2 a 20
173 3 3 a 30
184 4 4 a 40
195 2 2 a 50
206 3 3 a 60
217 4 4 a 70
228 1 1 a 80
239 1 1 b 100
2410 2 2 b 200
2511 3 3 b 300
2612 4 4 b 400
2713 2 2 b 500
2814 3 3 b 600
2915 4 4 b 700
3016 1 1 b 800
R cast() 函数
如上所述,在应用melt()函数后,数据框会被转换为延长的数据框架,为了恢复数据框架的近乎原始和自然的形状,使用R cast()函数
。
cast() 函数接受一个聚合函数和一个公式作为参数 (在这里,公式是重塑后数据的表示方式),并将延长或化数据框架投入一个特别聚合的数据框架形式。
合成:**
1cast(data, formula, aggregate function)
我们可以为 cast() 函数提供任何可用的总函数,如平均、总和等。
** 例子:**
1rm(list = ls())
2
3library(MASS)
4library(reshape2)
5library(reshape)
6
7A <- c(1,2,3,4,2,3,4,1)
8B <- c(1,2,3,4,2,3,4,1)
9a <- c(10,20,30,40,50,60,70,80)
10b <- c(100,200,300,400,500,600,700,800)
11data <- data.frame(A,B,a,b)
12
13print("Original data frame:\n")
14print(data)
15
16melt_data <- melt(data, id = c("A"))
17
18print("Reshaped data frame after melting:\n")
19print(melt_data)
20
21cast_data = cast(melt_data, A~variable, mean)
22
23print("Reshaped data frame after casting:\n")
24print(cast_data)
如上所述,我们已经将平均值作为汇总函数转移到 cast(),并将相当于 A 的变量设置为表示格式。
出发点:**
1[1] "Original data frame:\n"
2 A B a b
31 1 1 10 100
42 2 2 20 200
53 3 3 30 300
64 4 4 40 400
75 2 2 50 500
86 3 3 60 600
97 4 4 70 700
108 1 1 80 800
11
12[1] "Reshaped data frame after melting:\n"
13 A variable value
141 1 B 1
152 2 B 2
163 3 B 3
174 4 B 4
185 2 B 2
196 3 B 3
207 4 B 4
218 1 B 1
229 1 a 10
2310 2 a 20
2411 3 a 30
2512 4 a 40
2613 2 a 50
2714 3 a 60
2815 4 a 70
2916 1 a 80
3017 1 b 100
3118 2 b 200
3219 3 b 300
3320 4 b 400
3421 2 b 500
3522 3 b 600
3623 4 b 700
3724 1 b 800
38
39[1] "Reshaped data frame after casting:\n"
40 A B a b
411 1 1 45 450
422 2 2 35 350
433 3 3 45 450
444 4 4 55 550
结论
由此,我们已经到这个话题的尽头. 请自由评论下面,如果你遇到任何问题。
直到那时,快乐的学习!!! :)
** 参考:**