repeatedRows2Keep: Find non-repeated consecutive rows in a data.frame.

View source: R/FSAUtils.R

repeatedRows2KeepR Documentation

Find non-repeated consecutive rows in a data.frame.

Description

Finds the rows in a data.frame that are not repeats of the row immediately above or below it.

Usage

repeatedRows2Keep(
  df,
  cols2use = NULL,
  cols2ignore = NULL,
  keep = c("first", "last")
)

Arguments

df

A data.frame.

cols2use

A string or numeric vector that indicates columns in df to use. Negative numeric values will not use those columns. Cannot use both cols2use and col2ignore.

cols2ignore

A string or numeric vector that indicates columns in df to ignore. Cannot use both cols2use and col2ignore.

keep

A string that indicates whether the first (DEFAULT) or last row of consecutive repeated rows should be kept.

Value

A single logical that indicates which rows of df to keep such that no consecutive rows (for the columns used) will be repeated.

Author(s)

Derek H. Ogle, DerekOgle51@gmail.com

Examples

test1 <- data.frame(ID=1:10,
                    KEEP=c("First","Last","Both","Both","Both",
                           "Both","First","Neither","Last","Both"),
                    V1=c("a","a","a","B","b","B","A","A","A","a"),
                    V2=c("a","a","A","B","B","b","A","A","A","a"))
keepFirst <- repeatedRows2Keep(test1,cols2ignore=1:2)
keepLast <- repeatedRows2Keep(test1,cols2use=3:4,keep="last")
data.frame(test1,keepFirst,keepLast)

droplevels(subset(test1,keepFirst))  # should be all "First" or "Both" (7 items)
droplevels(subset(test1,keepLast))   # should be all "Last" or "Both" (7 items)


FSA documentation built on Aug. 27, 2023, 1:06 a.m.

Related to repeatedRows2Keep in FSA...