2013-05-23 3 views
0

В принципе, я пытаюсь написать функцию, которая работает с любой матрицей размером n, и ее нужно сделать так, чтобы она давала m различных матриц в качестве результатов. Есть ли какая-либо функциональность в R для создания переменных внутри функции?Можно ли автоматически генерировать переменные в [R]?

+1

Да, есть. Однако вы должны поместить все эти матрицы в список и вернуть список. – Roland

+0

Как? Предположим, у меня есть матрица n на m, и я хочу создать m переменных, помеченных как var1, var2, ... varm. – riders994

+0

Теперь, как намекает Роланд, почему вы хотите это сделать? Как правило, мало оснований для работы с кучей переменных с именем var1/var2 и т. Д. В R. Скорее всего, все данные будут собраны в списке или в вашем случае в уже имеющейся матрице. Если вы предоставите более подробную информацию на свой вопрос, он может получить хороший ответ. – thelatemail

ответ

3

Вот пример:

set.seed(42) 
m <- matrix(rnorm(9),ncol=3) 

#   [,1]  [,2]  [,3] 
# [1,] 1.3709584 0.6328626 1.51152200 
# [2,] -0.5646982 0.4042683 -0.09465904 
# [3,] 0.3631284 -0.1061245 2.01842371 


fun <- function(mat) { 
    result <- list() 
    for (i in seq_len(nrow(mat))) { 
    result[[i]] <- mat[-i,] 
    } 
    result 
} 

mList <- fun(m) 

mList[[1]] 
#   [,1]  [,2]  [,3] 
# [1,] -0.5646982 0.4042683 -0.09465904 
# [2,] 0.3631284 -0.1061245 2.01842371 

Однако, имейте в виду, что эта функция является только образовательный пример. Я бы, вероятно, использовал бы lapply, если бы мне нужен именно этот результат. Но вы можете поместить все, что вам нравится в списке, и позволить функции возвращать этот список (переменные не должны быть одного типа или класса).

+1

Итак, это создает список матриц? Думаю, я буду использовать это. Благодаря! – riders994

Смежные вопросы