R: превратить список в фрейм данных с именами списков в первом столбце - PullRequest
0 голосов
/ 31 января 2020

Проблема: превратить список во фрейм / таблицу данных, набор данных, который необходимо будет проанализировать. Список имен также будет одним столбцом.

Список создан из кода ниже. Набор данных должен иметь идентификатор столбца char (он же names(list)) и еще 16 столбцов (список l становится строкой). а N строк - это длина (mylist). Я пытался df <- data.frame(matrix(unlist(mylist), nrow=133, byrow=T),stringsAsFactors=FALSE). Идентификатор не включен ..

for (i in 1:length(uniq)) {
  testd  = subset(mySASData,pt_shift_id ==uniq[i])
  g = graph_from_data_frame(testd,directed  =T, vertices = actors)
  l = triad.census(g) 
  id = as.character(uniq[i])
  mylist[[id]]<-l
}

## dput(head(mylist))
list(S1PT00001S1S00004 = c(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
0, 0, 0, 0), S1PT00004S1S00053 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 
0, 0, 0, 0, 0, 0, 0), S1PT00005S1S00046 = c(0, 0, 0, 0, 1, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0), S1PT00006S1S00012 = c(0, 0, 0, 
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0), S1PT00006S1S00013 = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0), S1PT00006S1S00018 = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0))

Справочная информация: мне нужно провести перепись триады и построить графики в нескольких сетях, каждая из которых теперь сохраняется как строки данных / подмножество данных (в формате списков кромок) в одной набор исходных данных. Я только начинающий - средний пользователь R. Многое из того, что я описываю, может быть улучшено с точки зрения эффективности и методов. Пожалуйста посоветуй. Спасибо.

Нужны только эти две функции graph_from_data_frame, triad_census и plot из пакетов igraph. graph_from_data_frame превращает data.frame в объект графа и подается в triad_census, а на выходе получается числовой c вектор. plot это просто график и применяется к графическому объекту.

Мои исходные данные - SAS, когда импортируется int R, это data.frame.

'data.frame':   629 obs. of  3 variables:
 $ from       : Factor w/ 3 levels "MD","RN","RT": 2 2 3 1 3 3 3 1 1 1 ...
 $ to         : Factor w/ 4 levels "","MD","RN","RT": 2 4 3 3 2 2 3 3 2 2 ...
 $ pt_shift_id: Factor w/ 138 levels "S1PT00001S1S00004",..: 1 1 1 2 2 2 2 3 3 3 ...


structure(list(from = structure(c(2L, 2L, 3L, 1L, 3L, 3L), .Label = c("MD", 
"RN", "RT"), class = "factor"), to = structure(c(2L, 4L, 3L, 
3L, 2L, 2L), .Label = c("", "MD", "RN", "RT"), class = "factor"), 
    pt_shift_id = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("S1PT00001S1S00004", 
    "S1PT00004S1S00053", "S1PT00005S1S00046", "S1PT00006S1S00012", 
    "S1PT00006S1S00013", "S1PT00006S1S00018", "S1PT00008S1S00037", 
    "S1PT00009S1S00055", "S1PT00011S1S00056", "S1PT00012S1S00002", 
    "S1PT00015S1S00053", "S1PT00015S1S00055", "S1PT00016S1S00021", 
    "S1PT00017S1S00047", "S1PT00017S1S00052", "S1PT00018S1S00020", 
    "S1PT00018S1S00021", "S1PT00018S1S00022", "S1PT00018S1S00025", 
    "S1PT00018S1S00027", "S1PT00018S1S00031", "S1PT00020S1S00011", 
    "S1PT00020S1S00012", "S1PT00020S1S00014", "S1PT00020S1S00015", 
    "S1PT00021S1S00044", "S1PT00022S1S00021", "S1PT00022S1S00023", 
    "S1PT00022S1S00024", "S1PT00022S1S00025", "S1PT00022S1S00027", 
    "S1PT00023S1S00019", "S1PT00023S1S00021", "S1PT00023S1S00023", 
    "S1PT00023S1S00024", "S1PT00023S1S00025", "S1PT00023S1S00026", 
    "S1PT00023S1S00027", "S1PT00024S1S00002", "S1PT00024S1S00005", 
    "S1PT00025S1S00010", "S1PT00026S1S00046", "S1PT00026S1S00047", 
    "S1PT00026S1S00048", "S1PT00026S1S00052", "S1PT00027S1S00055", 
    "S1PT00027S1S00056", "S1PT00027S1S00060", "S1PT00028S1S00024", 
    "S1PT00028S1S00025", "S1PT00028S1S00026", "S1PT00028S1S00027", 
    "S1PT00029S1S00004", "S1PT00029S1S00005", "S1PT00029S1S00009", 
    "S1PT00030S1S00035", "S1PT00030S1S00037", "S1PT00030S1S00041", 
    "S1PT00030S1S00042", "S1PT00031S1S00037", "S1PT00031S1S00040", 
    "S1PT00031S1S00041", "S1PT00031S1S00042", "S1PT00033S1S00048", 
    "S1PT00033S1S00050", "S1PT00034S1S00028", "S1PT00034S1S00031", 
    "S1PT00035S1S00053", "S1PT00035S1S00055", "S1PT00036S1S00039", 
    "S1PT00036S1S00040", "S1PT00036S1S00041", "S1PT00038S1S00047", 
    "S1PT00038S1S00050", "S1PT00038S1S00051", "S1PT00039S1S00011", 
    "S1PT00040S1S00011", "S1PT00040S1S00012", "S1PT00040S1S00014", 
    "S1PT00041S1S00055", "S1PT00041S1S00056", "S1PT00041S1S00058", 
    "S1PT00042S1S00044", "S1PT00042S1S00049", "S1PT00043S1S00055", 
    "S1PT00043S1S00056", "S1PT00045S1S00010", "S1PT00045S1S00011", 
    "S1PT00046S1S00046", "S1PT00047S1S00035", "S1PT00047S1S00037", 
    "S1PT00047S1S00042", "S1PT00048S1S00035", "S1PT00048S1S00036", 
    "S1PT00048S1S00037", "S1PT00048S1S00040", "S1PT00048S1S00041", 
    "S1PT00048S1S00042", "S1PT00049S1S00011", "S1PT00049S1S00012", 
    "S1PT00050S1S00025", "S1PT00052S1S00005", "S1PT00053S1S00004", 
    "S1PT00054S1S00004", "S1PT00054S1S00005", "S1PT00054S1S00007", 
    "S1PT00054S1S00012", "S1PT00054S1S00013", "S1PT00054S1S00016", 
    "S1PT00054S1S00018", "S1PT00055S1S00011", "S1PT00055S1S00012", 
    "S1PT00055S1S00015", "S1PT00056S1S00002", "S1PT00057S1S00035", 
    "S1PT00057S1S00036", "S1PT00057S1S00037", "S1PT00059S1S00020", 
    "S1PT00059S1S00023", "S1PT00059S1S00025", "S1PT00059S1S00027", 
    "S1PT00060S1S00028", "S1PT00061S1S00044", "S1PT00063S1S00031", 
    "S1PT00065S1S00044", "S1PT00067S1S00035", "S1PT00068S1S00037", 
    "S1PT00068S1S00039", "S1PT00069S1S00055", "S1PT00069S1S00056", 
    "S1PT00069S1S00058", "S1PT00069S1S00060", "S1PT00070S1S00048", 
    "S1PT00070S1S00049", "S1PT00070S1S00050", "S1PT00071S1S00057", 
    "S1PT00071S1S00058", "S1PT00071S1S00059"), class = "factor")), row.names = c(3L, 
4L, 5L, 6L, 9L, 11L), class = "data.frame")
...