R melt() 和 cast() 函数 - 在 R 中重塑数据

您好,读者! 在本文中,我们将仔细研究 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

结论

由此,我们已经到这个话题的尽头. 请自由评论下面,如果你遇到任何问题。

直到那时,快乐的学习!!! :)

** 参考:**

Published At
Categories with 技术
Tagged with
comments powered by Disqus