Цикл в R: как сохранить выходы?

Я пытаясь сохранить данные из цикла логических тестов.

Итак, у меня есть следующие данные:

T1 <- matrix(seq(from=100000, to=6600000,length.out=676),26,26) # a matrix of 26X26 - here with illustrive values

minmax <- seq(from=1,to=49,by=1) # creates a sequence
Fstep <- 6569141.82/minmax       # define a vector from 0 to 6569141.82 with 49 divisions
F <- rev(round(Fstep,0))         # round the vector values and re order them
F

Я выполнил следующий цикл

for (i in 1:49) {
  print(T1 > F[i]) # I used print to see the results in the screen
}

Этот цикл возвращает мне 49 матриц, заполненных логическими значениями (Истина или Ложь). Каждая матрица представляет собой сравнение T1 с каждой из 49 позиций F[i] (F[1], ...., F[49])

. Мне нужно иметь значения в этих матрицах для дальнейшего использования в качестве смежности матрицы для сетевых графиков.Однако, когда я не могу ни присвоить эти логические значения матрице, ни сохранить их в значениях csv, используя «write.matrix».

Итак, мне нужно иметь 49 - матриц "W", заполненных логическими значениями (T или F). Я уже получил эти значения в цикле выше, но не могу получить их как объект или как набор CSV. файлы.

Я попробовал

W<-matrix(0,26,26) #create an empty matrix to assign the logical arguments
for (i in 1:49){
  W[i] <- T1>F[i] # I used print to see the results in the screen
}

, который возвращает следующее предупреждение.

Warning messages:
1: In W[i] <- (T1 > F[i]) :
  number of items to replace is not a multiple of replacement length

Я также попробовал другую настройку, при которой все сравниваемые матрицы имеют одинаковые размеры.

create.M <- function(F){ #  a function to transform  each position F[i] into a 26X26 matrix
  for (i in 1:49) {
    matrix(F[i],26,26)
  }
}

Loop.T1 <- function(T1){ #  a function to replicate T1(49 times)
  for ( i in 1:49) {
    T1
  }
}

и сравнил два выхода

Loop.T1(T1)>create.M(F)

, который возвращает

logical(0)
7
задан rawr 27 November 2016 в 23:01
поделиться