📌  相关文章
📜  在 R 中将 DataFrame 变量拆分为多列

📅  最后修改于: 2022-05-13 01:55:17.831000             🧑  作者: Mango

在 R 中将 DataFrame 变量拆分为多列

在本文中,我们将讨论如何使用 R 编程语言将数据帧变量拆分为多列。

方法一:使用 do.call 方法

R 中的 strsplit() 方法用于将指定的列字符串向量拆分为相应的部分。该模式用于将字符串分成子部分。

句法:

strsplit(str, pattern)

范围 :

  • str:要拆分的字符串向量。
  • 模式:分割字符串的模式。

do.call() 方法用于从方法名称中调用函数。然后可以使用 rbind() 方法来组合作为向量获得的列,这些列是应用 strsplit 方法的结果。



句法:

do.call(what, args)

范围:

  • what – 要执行的函数
  • args – 要执行的附加参数。

示例:将 Dataframe 变量拆分为多列

R
# creating a dataframe 
data_frame <- data.frame(
                         col1 = c("val_1","val_2","val_3","val_4")
                         )
print("Original DataFrame")
print(data_frame)
  
# splitting values in column
print("Modified DataFrame")
  
# splitting the values of col1 using underscore character
data.frame(do.call("rbind", strsplit(as.character(data_frame$col1), "_",
                                     fixed = TRUE)))


R
library("tidyr")
  
# creating a dataframe 
data_frame <- data.frame(
                         col1 = c("val_1","val_2","val_3","val_4")
                         )
  
print("Original DataFrame")
print(data_frame)
  
# splitting values in column
print("Modified DataFrame")
  
data_frame %>%
  separate(col1, c("col1", "col2"), "_")


R
library("stringr")
  
# creating a dataframe 
data_frame <- data.frame(
                         col1 = c("val_1","val_2","val_3","val_4")
                         )
print("Original DataFrame")
print(data_frame)
  
# splitting values in column
print("Modified DataFrame")
str_split_fixed(data_frame$col1, "_", 2)


输出:

[1] "Original DataFrame"
  col1
1 val_1
2 val_2
3 val_3
4 val_4
[1] "Modified DataFrame"
  X1 X2
1 val  1
2 val  2
3 val  3
4 val  4

方法二:使用tidyr包

R 中的 tidyr 包用于对数据进行变异和可视化。它用于整理数据。可以使用以下命令将该包下载并安装到工作空间中:

install.packages("tidyr")

R 中的separate 方法可用于将指定的字符串列或向量拆分为相应的子部分。第二个参数向量的长度相当于将数据拆分成的片段数。

句法:



separate(str, n, pattern)

范围:

  • str:要拆分的字符串向量。
  • n:将字符串分割成的片段的名称。
  • 模式:分割字符串的模式。

示例:将数据框变量拆分为多列

电阻

library("tidyr")
  
# creating a dataframe 
data_frame <- data.frame(
                         col1 = c("val_1","val_2","val_3","val_4")
                         )
  
print("Original DataFrame")
print(data_frame)
  
# splitting values in column
print("Modified DataFrame")
  
data_frame %>%
  separate(col1, c("col1", "col2"), "_")

输出:

[1] "Original DataFrame"
  col1
1 val_1
2 val_2
3 val_3
4 val_4
[1] "Modified DataFrame"
 col1 col2
1  val    1
2  val    2
3  val    3
4  val    4

方法三:使用stringr包

R 中的 stringr 包用于执行字符串操作。它帮助我们执行与字符串相关的修改。可以使用以下命令将该软件包下载并安装到工作空间中:

install.packages("stringr")

stringr 包中的 str_split_fixed 方法用于将字符串拆分为固定数量的片段。该方法将字符串转换为指定数量的子字符串。指定的模式应该是单位长度。

句法:

str_split_fixed(str, patten , n)

范围 :

  • str:要拆分的字符串向量。
  • 模式:分割字符串的模式。
  • n:将字符串拆分成的片段数。

示例:将数据框变量拆分为多列

电阻

library("stringr")
  
# creating a dataframe 
data_frame <- data.frame(
                         col1 = c("val_1","val_2","val_3","val_4")
                         )
print("Original DataFrame")
print(data_frame)
  
# splitting values in column
print("Modified DataFrame")
str_split_fixed(data_frame$col1, "_", 2)

输出:

[1] "Original DataFrame"
  col1
1 val_1
2 val_2
3 val_3
4 val_4
[1] "Modified DataFrame"
    [,1]  [,2]
[1,] "val" "1"
[2,] "val" "2"
[3,] "val" "3"
[4,] "val" "4"