【问题标题】:splitting text to create new variable拆分文本以创建新变量
【发布时间】:2023-01-10 12:06:39
【问题描述】:

我有第一个数据集,我想通过拆分第一个数据集中的文本来创建所需的数据集,我想知道我该怎么做:

基本上,新变量将在“XYZ-1”或“AAA-2”之后拆分。 我感谢所有的帮助!谢谢!

第一个数据集:

Name <- c("A B XYZ-1 Where","C AAA-2 When","ABC R SS XYZ-1 Where")
x <- data.frame(Name)

所需的数据集:

Name <- c("A B XYZ-1 Where","C AAA-2 When","ABC R SS XYZ-1 Where")
Study <- c("A B XYZ-1","C AAA-2","ABC R SS XYZ-1")
Question <- c("Where","When","Where")
x <- data.frame(Name,Study,Question)

Name                      Study             Question

A B XYZ-1 Where           A B XYZ-1         Where       
C AAA-2 When              C AAA-2           When        
ABC R SS XYZ-1 Where      ABC R SS XYZ-1    Where

【问题讨论】:

  • “XYZ-1”或“AAA-2”是唯一要拆分的两个值吗?或者一般模式是什么?
  • 是的,这是唯一要拆分的两个值。

标签: r text split


【解决方案1】:

使用separate

library(tidyr)
separate(x, Name, into = c("Study", "Question"), 
     sep = "(?<=[A-Z]{3}-\d)\s+(?=[A-Z])", remove = FALSE)

-输出

                  Name          Study Question
1      A B XYZ-1 Where      A B XYZ-1    Where
2         C AAA-2 When        C AAA-2     When
3 ABC R SS XYZ-1 Where ABC R SS XYZ-1    Where

【讨论】:

  • 谢谢!请您解释一下这部分 "(?<=[A-Z]{3}-\d)\s+(?=[A-Z])" 好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-10
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-17
相关资源
最近更新 更多