Функция c
объединяет ваши векторы в 1 длинный вектор, например, c (1: 3, 5: 7) будет 1 вектором с 6 элементами.
Я думаю, что вы хотите использоватьlist
вместо c
, который сохранит векторы как отдельные векторы.
Ваш взгляд должен работать, если вы сделаете что-то вроде:
ms<-list()
for (i in list(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10)){
n<-length(i)
m<-n/sum(log(i/3))
ms<-c(ms,m)
}
Обратите внимание на исправление в последней строке.
Но поскольку целью является создание нового списка с результатами, использование функции lapply
может быть проще:
ms <- lapply( list(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10),
function(x) length(x)/sum(log(x/3))
)