根据一列中的模式选择数据直到最后

我有凌乱的数据。我想根据列中的短语对数据进行子集化直到最后。

df1 <- data.frame(
V1=c("No. de Control Interno de", "la Partida / Concepto de Obra","",
     "LO-009J0U004-","E50-2021",""),
V2=c("","Descripción Breve","Trabajos de señalamiento horizontal en puente de",
     "cuota "El Zacatal", consistentes en suministro y","aplicación de pintura de tránsito, suministro y",
     "colocación de botones y ménsulas reflejantes."),
V3=c("","ClaveCUCOP","","","62502002",""),
V4=c("Unidad","Observaciones de Medida","","","Obra",""),
V5=c("","Cantidad","","","1","")
)

无论何时V2,都有短语Descripción,代码应该从该行到最后对数据帧进行子集化。例如,在上面的例子中,这意味着从第 2 行到第 6 行选择数据。我正在尝试使用str_detectfrom stringrpackage。

回答

您可以使用该which()函数返回索引 where str_detect()is TRUE

library(stringr)

which(str_detect(df1$V2, "Descripción"))
[1] 2

相反,如果您将 的输出保存which()到变量,则可以使用它来对数据进行子集化。请注意,x如果有多个地方str_detect返回 true ,则后续会显式调用第一个值。

x <- which(str_detect(df1$V2, "Descripción"))
df1[x[1]:nrow(df1),]
                             V1                                               V2         V3                      V4       V5
2 la Partida / Concepto de Obra                                Descripción Breve ClaveCUCOP Observaciones de Medida Cantidad
3                               Trabajos de señalamiento horizontal en puente de                                            
4                 LO-009J0U004- cuota "El Zacatal", consistentes en suministro y                                            
5                      E50-2021  aplicación de pintura de tránsito, suministro y   62502002                    Obra        1
6                                  colocación de botones y ménsulas reflejantes.

以上是根据一列中的模式选择数据直到最后的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>