У меня есть следующий dataframe:Применить функцию для каждой пары столбцов в R
Day A1 A2 B1 B2 C1 C2
Mon 1 0 0 1 0 1
Tue 1 0 1 0 0 1
Wed 0 1 1 0 1 0
Thu 0 1 0 1 1 0
df <- data.frame(A1=c(1,1,0,0),A2=c(0,0,1,1),B1=c(0,1,1,0),B2=c(1,0,0,1),C1=c(0,0,1,1),C2=c(1,1,0,0), row.names=c('Mon','Tue','Wed','Thu'))
Я хочу, чтобы получить как выход дней, которые имеют X1 = 1 и Х2 = 0, сгруппированные по буквам. Например, для буквы A, Mon и Tue соответствуют критериям A1 = 1 и A2 = 0.
Такое, что выход:
Список:
$A
Mon
Tue
$B
Tue
Wed
$C
Wed
Thu
Или dataframe:
Lett Day
A Mon
A Tue
B Tue
B Wed
C Wed
C Thu
Я пытался на следующее:
For A:
A <- df$A1 == 1 & df$A2 == 0
Я хотел бы получить логический вектор как:
T
T
F
F
Затем сопоставить их с днями исходной БД:
A <- cbind(db[1], A)
И фильтровать «TRUE» значения, чтобы получить выход
A
Mon
Tue
Я мог бы сделать это для каждой буквы, но сценарий был бы слишком длинным, и проблема в том, что я мог бы иметь любое количество буквы (A, B .. Z)
Можете ли вы понять, что есть X1 и X2? – Metrics
@Metrics Довольно уверен, что 'X' предназначен для подстановки' * 'для каждой буквы: A, B, C ... – Thomas
Точно, X = {A, B, .. Z) – rwn1v