Скажем, у меня есть 3 вектора (строки из 10):
X <- c(1,1,0,1,0, 1,1, 0, NA,NA)
H <- c(0,0,1,0,NA,1,NA,1, 1, 1 )
I <- c(0,0,0,0,0, 1,NA,NA,NA,1 )
Data.frame Y
содержит 10 столбцов и 6 строк:
1 2 3 4 5 6 7 8 9 10
0 1 0 0 1 1 1 0 1 0
1 1 1 0 1 0 1 0 0 0
0 0 0 0 1 0 0 1 0 1
1 0 1 1 0 1 1 1 0 0
0 0 0 0 0 0 1 0 0 0
1 1 0 1 0 0 0 0 1 1
Я хотел бы использовать вектор X, H en I для выбора столбцов в data.frame Y, используя «1» и «0» в векторе в качестве критерия выбора. Таким образом, результаты для вектора X с использованием «1» в качестве критерия выбора должны быть:
X <- c(1,1,0,1,0, 1,1, 0, NA,NA)
1 2 4 6 7
0 1 0 1 1
1 1 0 0 1
0 0 0 0 0
1 0 1 1 1
0 0 0 0 1
1 1 1 0 0
Для вектора H с использованием «1» в качестве критерия выбора:
H <- c(0,0,1,0,NA,1,NA,1, 1, 1 )
3 6 8 9 10
0 1 0 1 0
1 0 0 0 0
0 0 1 0 1
1 1 1 0 0
0 0 0 0 0
0 0 0 1 1
Для вектора I, использующего «1» в качестве критерия выбора:
I <- c(0,0,0,0,0, 1,NA,NA,NA,1 )
6 10
1 0
0 0
0 1
1 0
0 0
0 1
Для удобства и скорости я хотел бы использовать цикл. Это может быть что-то вроде этого:
all.ones <- lapply[,function(x) x %in% 1]
В результате (all.ones) результат для каждого вектора должен оставаться отдельным. Например:
X 1,2,4,6,7
H 3,6,8,9,10
I 6,10