使用 R 拆分包含由 headers 分隔的多组数据的 CSV 并创建标识列

Using R to Split a CSV with multiple sets of data separated by headers and creating an identifying column

我是 R 的新手,我遇到了一个奇怪的 CSV,我的老板需要我简化使用。

我有一个包含多组数据的 .csv。通常很好,但每组数据都用空行分隔,然后是下一组数据的 headers(headers 始终相同)。唯一的问题是没有标识列让我只删除这些行。因此,对于每组数据,我需要删除空行和 Headers,同时在新列中为每组数据赋予唯一值。我希望这是有道理的。

老实说,我不知道如何处理这种情况,也找不到任何我可以适应的问题。至少在我目前的知识中不是。

任何帮助将不胜感激,并可能帮助我说服我的老板放弃他的强硬方式...

已编辑,因为我错过了所需的 "set" 列..

如果你的数据如你所说,它来自图片,你也许可以...它对我在 excel 中构建的一个小样本很有效,有点像你的.我假设 "Current" 和 "Desired" 实际上不在文件中并且第一行以 header

开头
library(dplyr)

yourdata <- read.csv("yourcsv.csv")

yourdata %>% 
  mutate(Set = cumsum(!duplicated(Location == "Location"))) %>% 
  filter(Location != "Location", Location != "") 
#>   Location Feature Height Volume Set
#> 1     U104       3    104     99   1
#> 2     U104       5    123    456   1
#> 3     U104       6     45    999   2
#> 4     U105       6     45    999   2

基于数据

structure(list(Location = c("U104", "U104", "", "Location", "U104", 
"U105"), Feature = c("3", "5", "", "Feature", "6", "6"), Height = c("104", 
"123", "", "Height", "45", "45"), Volume = c("99", "456", "", 
"Volume", "999", "999")), class = "data.frame", row.names = c(NA, 
-6L))