У меня есть следующая матрица "myMatrix2":
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[4,] 1 2 3
Теперь я хочу написать функцию, которая помещает все строки, начинающиеся со значения 1, в новую матрицу.
Вот что я придумал:
retrieverows_2 <- function(matrixold, y=1){
matrixnew <<- matrix()
while(y<=nrow(matrixold)){
if(matrixold[y,1]==1){
matrixnew <<- rbind(matrixold[y,])
}
y <- y+1
}
}
Проблема теперь в том, что кажется, что она перезаписывает строку новой матрицы, так что она возвращает только последнюю строку моей исходной матрицы следующим образом:
[,1] [,2] [,3]
[1,] 1 2 3
Мой желаемый результат был бы:
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 1 2 3
Может кто-нибудь объяснить мне, почему rbind()
перезаписывает строку моей новой матрицы?