У меня есть кадр данных, который я разделил на разные подмножества. На основании этого я генерирую списки последовательностей и матрицы расстояний , а затем иерархический кластерный анализ.недопустимый индекс типа 'list' с lapply в WeightedCluster
library(TraMineR)
library(WeightedCluster)
library(cluster)
data(mvad)
value1 <- min(grep('\\d{2}$', names(mvad)))
value2 <- max(grep('\\d{2}$', names(mvad)))
mvad.split <- split(mvad, f=mvad$male)
mvad.seq <- lapply(mvad.split, function(x){seqdef(x[value1:value2])})
mvad.om <- lapply(mvad.seq, function(x){seqdist(x, method='OM',
indel=1, sm='TRATE')})
mvad.dis <- lapply(mvad.om, function(x){as.dist(x)})
mvad.hc <- lapply(mvad.dis, function(x){hclust(x,
method='ward.D2')})
Тогда я хочу, чтобы преобразовать свой иерархический список кластеров в список seqtree с данными последовательности и расстояния
mvad.tree <- lapply(mvad.hc, function(x){as.seqtree(x,
seqdata=mvad.seq[[x]],
diss=mvad.dis[[x]],
weighted=F,
nclust=6)})
И получить Error in mvad.dis[[x]] : invalid subscript type 'list'
. Мои фактические данные состоят из многих когорт, и использование split() в сочетании с lapply() сэкономит мне много времени. Какие-либо предложения?
Добро пожаловать в SO !, без тестовых данных, невозможно воспроизвести ошибку, я бы предложил посмотреть [как опубликовать воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how -to-make-a-great-r-воспроизводимый пример) и добавление некоторых тестовых данных – OdeToMyFiddle