R Data.Table Matrix Invert - PullRequest
       9

R Data.Table Matrix Invert

0 голосов
/ 26 марта 2020
data=data.frame("Cluster"=c('100-0-1-1-1-0-0-1','100-0-1-1-1-0-0-2','100-0-1-1-1-0-0-3','100-0-1-1-1-0-0-4','101-1-3-1-1-0-0-1','101-1-3-1-1-0-0-2','101-1-3-1-1-0-0-3','101-1-3-1-1-0-0-4'),
                "Start"=c('T1','T2','T3','T4','T1','T2','T3','T4'),
                "T1"=c(0.99666092,0.955408575,0.591360265,0,0.842613486,0.249979248,0.018732018,0),
                "T2"=c(0.002849352,0.034098921,0.263485347,0,0.100172896,0.371004018,0.347065989,0),
                "T3"=c(0.000270287,0.005809104,0.080614609,0,0.024058249,0.160022544,0.268845885,0),
                "T4"=c(0.00021944,0.004683401,0.06453978,1,0.03315537,0.21899419,0.365356108,1))

k=nchar(as.character(data[1,1]))
k1=unique(substr(data$Cluster, 1, k-2))


library(pracma)
#do this for each k1 and store in 'data1' which is identical to data but with the updated values
pracma::rootm(data[,c('T1','T2','T3','T4')], p = 6)

У меня есть «данные» в качестве фрейма данных. Он содержит «Кластер», обозначаемый последовательностью значений; последнее значение указывает позицию «Старт». Затем у меня есть «T1» - «T4», которые являются ставками. Для каждого уникального кластера (без последнего di git) я должен sh найти 6-ю root матрицы, как показано выше, и сохранить эту информацию вместе с информацией «Кластер» и «Старт» в новых данных. кадр, 'data1'.

Есть ли эффективный способ сделать это без использования циклов? Итак, найдем 6 root квадратной матрицы для каждого уникального «Кластера» в «k1» и сохраним эту информацию в новом data.frame?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...