【发布时间】:2020-02-27 14:16:00
【问题描述】:
虽然它似乎以前已经解决了in other questions,但我的问题更具挑战性。
让我们从我从 Calc 表中复制/粘贴的示例开始:
这是所需的最小可重现示例:
Label <- c("Catalog codes:" , "Themes:", "Size:", "Score:", "Buy Now:",
"Series:", "Catalog codes:", "Themes:", "Related items:", "Buy Now:",
"Catalog codes:", "Themes:", "Size:", "Score:",
"Series:", "Themes:", "Size:", "Score:", "Related items:",
"Catalog codes:", "Themes", "Size:", "Score:", "Related items:", "Buy Now:")
example <- as.data.frame(Label)
我拥有的 R 数据框的一部分包含一列,该列具有该列 (Label) 和许多行。
这里的重点是一组行属于一个类别(比如Group 1 等等)。您可以在上一张图片中以粉红色和白色背景识别不同的组。
虽然每个组中的标签都有内部顺序,但并非所有组都包含相同的标签。
但是,每个组中的开始和结束标签保持不变,具体取决于存在的标签。您可以看到Catalog codes: 和Series: 开始每个组,而Buy Now:、Score: 和Related items: 结束每个组。
我想在此数据框中创建第二列,它可以识别这些结束/开始标签的模式或组合,然后对它们进行分类。结果可能类似于此图像:
【问题讨论】:
-
请不要为数据或代码嵌入图片,而是使用缩进的代码块。此外,如果您提供minimale reproducible example,则可以更轻松地为您提供帮助
-
我添加了数据框示例的代码@dario
-
您说
Catatolg codes和Series都开始了一个新组...但是在您的示例输出中,第 6 行(系列)第 7 行(目录代码)在同一个组中...为什么? -
@Wimpel,因为我提到并非所有标签都存在于一个组中。在您引用的示例中,第 2 组有两个标签,但其他没有。当 Series: is, present, Series: 是第一个标签。不存在时,第一个是下一个,即Catalog codes:
标签: r dataframe conditional-statements categorical-data