I am trying to find the first column that has a specific number and the last column of the same value by each row in a dataframe. See example data and desired output if the number was 4.
Example Data
ID WZ_1 WZ_2 WZ_3 WZ_4
1 5 4 4 3
2 4 4 3 3
3 4 4 4 4
Example Output
ID First Last
1 WZ_2 WZ_3
2 WZ_1 WZ_2
3 WZ_1 WZ_4
library(data.table)
# dummy data
# use setDT(df) if yours isn't a datatable already
df <- data.table(id = 1:3
, a = c(4,4,0)
, b = c(0,4,0)
, c = c(4,0,4)
); df
id a b c
1: 1 4 0 4
2: 2 4 4 0
3: 3 0 0 4
# find 1st & last column with target value
df[, .(id
, first = apply(.SD, 1, \(i) names(df)[min(which(i==4))])
, last = apply(.SD, 1, \(i) names(df)[max(which(i==4))])
)
]