R语言 从列表中创建矩阵和数据框

R语言 从列表中创建矩阵和数据框

在R编程中,有5个基本对象。Lists是可以包含不同类型的元素的对象,与向量不同。矩阵可以包含相同类型的元素或同质元素。另一方面,数据框架与矩阵类似,但比矩阵更有优势,可以保留异质元素。在这篇文章中,我们将学习如何使用列表创建矩阵和数据框架。

使用列表创建矩阵

矩阵是用R编程中的matrix()函数创建的。另一个将被使用的函数是unlist()函数,用于将列表转换为矢量。创建的向量包含给定列表的原子成分。

语法:

unlist(x, recursive = TRUE, use.names = TRUE)

参数

x: 代表列表

recursive: 代表逻辑值。如果是FALSE,函数将不会递归到列表的第一层以上

use.names: 代表逻辑值,以保留命名信息。

例1 :

# Defining list
ls1 <- list(
  list(1, 2, 3),
  list(4, 5, 6))
  
# Print list
cat("The list is:\n")
print(ls1)
cat("Class:", class(ls1), "\n")
  
# Convert list to matrix
mt1 <- matrix(unlist(ls1), nrow = 2, byrow = TRUE)
  
# Print matrix
cat("\nAfter conversion to matrix:\n")
print(mt1)
cat("Class:", class(mt1), "\n")

输出

The list is:
[[1]]
[[1]][[1]]
[1] 1

[[1]][[2]]
[1] 2

[[1]][[3]]
[1] 3


[[2]]
[[2]][[1]]
[1] 4

[[2]][[2]]
[1] 5

[[2]][[3]]
[1] 6

Class: list 

After conversion to matrix:
     [, 1] [, 2] [, 3]
[1, ]    1    2    3
[2, ]    4    5    6

Class: matrix 

例2 :

# Defining list
ls2 <- list("A", 10, TRUE, 2i)
  
# Print list
cat("\nThe list is:\n")
print(ls2)
cat("Class:", class(ls2), "\n")
  
# Convert list to matrix
mt2 <- matrix(unlist(ls2), nrow = 2, byrow = TRUE)
  
# Print matrix
cat("\nAfter conversion to matrix:\n")
print(mt2)
cat("Class:", class(mt2), "\n")
cat("\nType:", typeof(mt2), "\n")

输出

The list is:
[[1]]
[1] "A"

[[2]]
[1] 10

[[3]]
[1] TRUE

[[4]]
[1] 0+2i

Class: list

After conversion to matrix:
     [, 1]   [, 2]  
[1, ] "A"    "10"  
[2, ] "TRUE" "0+2i"

Class: matrix 

Type: character

使用列表创建数据框架

同样,通过使用unlist()函数和data.frame()函数,可以使用列表创建数据框架。

例子

# Defining lists
n <- list(1:3)
l <- list(letters[1:3])
m <- list(month.name[1:3])
  
# Convert lists into dataframe columns
df <- data.frame(unlist(n), unlist(l), unlist(m))
  
# Names of columns of dataframe
names(df) <- c("Number", "Letters", "Month")
  
# Print dataframe
cat("The dataframe is :\n")
print(df)

输出

The dataframe is :
  Number Letters    Month
1      1       a  January
2      2       b February
3      3       c    March

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程