R语言 如何取消数据帧

R语言 如何取消数据帧

在这篇文章中,我们将讨论如何在R编程语言中取消数据框架的嵌套。数据框架的不嵌套是指将其扁平化。

方法1:使用do.call方法

基础R语言中的do.call()方法使用其相应的参数列表从一个函数中构造并执行一个函数调用。

语法:

do.call(what, args)

参数:

  • what – 要执行的函数的名称
  • args – 调用该函数的附加参数。

我们调用函数 “data.frame”,将第二个参数指定的对象转化为数据框。输出将以data.frame对象的形式返回,其中包含行和相应的列信息。

例子

# creating a data frame
data_frame <- data.frame(col1 = sample(letters[1:5]),
                         col2 = 1:5
                         )
  
print ("Original DataFrame")
print (data_frame)
  
# unnesting data frame
unnest_df <- do.call(data.frame, data_frame)
  
# printing unnesting data frame
str(unnest_df)

输出

[1] "Original DataFrame" 
col1 col2 
1    c    1 
2    e    2 
3    a    3 
4    b    4 
5    d    5
'data.frame': 5 obs. of  2 variables:  
col1: chr  "c" "e" "a" "b" ... col2: int  1 2 3 4 5

方法2:使用purrr包

R编程语言中的purrr包被用来模拟函数以及向量的简单工作。R中的bind_cols()方法用于绑定两个或多个数据框架的列。reduce()方法用于通过递归调用一个函数,将一个向量x减少到一个单一的值。这里的reduce()方法被用来创建第二个数据框对象,它将数据框的最后一行作为输入,并使用 “tibble “作为函数。

输出是以非嵌套数据框的形式获得的。

例子

library(purrr)
  
# creating a data frame
data_frame <- data.frame(col1 = sample(letters[6:10]),
                         col2 = 1:5
                         )
  
print ("Original DataFrame")
print (data_frame)
  
# unnesting data frame
unnest_df <- bind_cols(data_frame[1], reduce(data_frame[-1], tibble))
str(unnest_df)

输出

[1] "Original DataFrame" 
  col1 col2 
1    g    1 
2    i    2 
3    j    3 
4    h    4 
5    f    5 
'data.frame': 5 obs. of  2 variables:  
col1: chr  "g" "i" "j" "h" ... ...2: int  1 2 3 4 5

方法3:使用tidyr包

R中的tidyr包被用来 “整理 “数据。该包中的unnest()方法可以用来将数据框转换为一个非嵌套对象,方法是指定输入数据及其对应的列,用于非嵌套。输出结果是以R中的tibble形式产生的。

语法:

unnest (data, cols )

参数 :

  • data – 要取消嵌套的数据框架
  • cols – 用于解嵌的列

例子

library(tidyr)
  
# creating a data frame
data_frame <- data.frame(col1 = sample(letters[6:10]),
                         col2 = 1:5
                         )
  
print ("Original DataFrame")
print (data_frame)
  
# unnesting data frame
unnest_df <- unnest(
  data_frame , cols = c('col1','col2'))
str(unnest_df)

输出

[1] "Original DataFrame" 
col1 col2 
1    i    1 
2    j    2 
3    g    3 
4    h    4 
5    f    5
tibble [5 × 2] (S3: tbl_df/tbl/data.frame)  
col1: chr [1:5] "i" "j" "g" "h" ... col2: int [1:5] 1 2 3 4 5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程