Я следующий кадр данных:
ID A1 A2 A3 A4 B1 B2 B3 B4
1 ID1 1 2 1 1 1 1 2 2
2 ID2 2 2 1 1 2 NA 2 1
3 ID3 2 2 1 2 1 1 NA 2
4 ID4 1 1 1 1 1 NA NA 2
5 ID5 2 2 1 1 NA NA 2 NA
6 ID6 1 1 1 1 2 2 2 2
Я хочу, чтобы извлечь строки из собрания кадра данных конкретных условий для каждой комбинации А и В. Эти условия:
ПП: значение 2 присутствует в А-типа столбца + значение 2 присутствует в в-типа колонке
PA: значение 2 присутствует в А-типа столбца + значение 1, присутствующего в столбце в-типа
АП: значение 1 присутствует в А-типа столбца + значение 2 присутствует в колонке В-типа
АА: Значение 1 присутствует в А-типа столбца + значение 1 присутствует в колонке В-типа
Это то, что я писал:
A <- colnames(dataframe)[2:5]
# A = A1, A2, A3 and A4
B <- colnames(dataframe)[6:9]
# B = B1, B2, B3 and B4
for (a in A) {
for (b in B) {
PP <- dataframe[dataframe$a=='2' & dataframe$b=='2' , ]
PA <- dataframe[dataframe$a=='2' & dataframe$b=='1' , ]
AP <- dataframe[dataframe$a=='1' & dataframe$b=='2' , ]
AA <- dataframe[dataframe$a=='1' & dataframe$b=='1' , ]
print(head(PP)) #to have a preview
}
}
Однако новые кадры данных пусты, и я не понимаю, почему. В идеале первый цикл (с = А1 и В = В1) будет, следовательно, выход:
ПП:
ID A1 A2 A3 A4 B1 B2 B3 B4
2 ID2 2 2 1 1 2 NA 2 1
ПА:
ID A1 A2 A3 A4 B1 B2 B3 B4
3 ID3 2 2 1 2 1 1 NA 2
АП:
ID A1 A2 A3 A4 B1 B2 B3 B4
6 ID6 1 1 1 1 2 2 2 2
AA:
ID A1 A2 A3 A4 B1 B2 B3 B4
1 ID1 1 2 1 1 1 1 2 2
Я надеюсь, что кто-то может помочь. Спасибо.