`E<-`(`*tmp*`, value = 1:9) 中的错误:尝试在 R 中进行图形分析时索引无效
Error in `E<-`(`*tmp*`, value = 1:9) : invalid indexing when attempting a graph analysis in R
我正在尝试在 R. 中进行图形分析,根据他们的症状经验寻找合并症中的不同群体。我收到此错误:
Error in `E<-`(`*tmp*`, value = 1:9) : invalid indexing
这是我的代码 运行:
G <- graph.data.frame(data_piv, directed = FALSE)
E(G)$weight=E(G)$V3
mst_prim = minimum.spanning.tree(G, weights=G$weight, algorithm = "prim")
这是我拥有的数据类型:
fake_data <-
structure(list(Comorbidities = c("asthma", "diabetes_type_one",
"diabetes_type_two", "heart_disease", "hypertension", "kidney_disease",
"liver_disease", "lung_condition", "obesity"), chills = c(25.8992805755396,
9.52380952380952, 18.3098591549296, 35.3846153846154, 19.9079401611047,
7.69230769230769, 38.2352941176471, 24.5967741935484, 18.3333333333333
), cough = c(59.1726618705036, 61.9047619047619, 57.0422535211268,
58.4615384615385, 58.3429228998849, 57.6923076923077, 55.8823529411765,
58.4677419354839, 57.7777777777778), diarrhoea = c(21.9424460431655,
9.52380952380952, 9.85915492957746, 27.6923076923077, 17.8365937859609,
19.2307692307692, 20.5882352941176, 19.758064516129, 21.2962962962963
), fatigue = c(60.431654676259, 47.6190476190476, 52.8169014084507,
61.5384615384615, 52.5891829689298, 46.1538461538462, 64.7058823529412,
56.0483870967742, 49.6296296296296), headache = c(43.705035971223,
28.5714285714286, 26.056338028169, 43.0769230769231, 37.7445339470656,
30.7692307692308, 44.1176470588235, 43.5483870967742, 40.3703703703704
), loss_smell_taste = c(20.863309352518, 14.2857142857143, 15.4929577464789,
27.6923076923077, 18.8722669735328, 19.2307692307692, 35.2941176470588,
20.9677419354839, 18.3333333333333), muscle_ache = c(47.6618705035971,
47.6190476190476, 38.0281690140845, 58.4615384615385, 44.1887226697353,
38.4615384615385, 61.7647058823529, 45.9677419354839, 44.2592592592593
), nasal_congestion = c(33.8129496402878, 19.047619047619, 28.169014084507,
30.7692307692308, 31.5304948216341, 30.7692307692308, 38.2352941176471,
38.7096774193548, 33.7037037037037), nausea_vomiting = c(10.0719424460432,
7.14285714285714, 7.74647887323944, 10.7692307692308, 5.75373993095512,
0, 8.82352941176471, 13.7096774193548, 8.14814814814815), shortness_breath = c(61.3309352517986,
28.5714285714286, 23.2394366197183, 53.8461538461538, 30.6098964326812,
57.6923076923077, 38.2352941176471, 50.8064516129032, 33.3333333333333
), sore_throat = c(46.5827338129496, 33.3333333333333, 35.9154929577465,
49.2307692307692, 49.2520138089758, 57.6923076923077, 64.7058823529412,
45.5645161290323, 48.7037037037037), sputum = c(47.4820143884892,
33.3333333333333, 40.1408450704225, 46.1538461538462, 36.9390103567319,
38.4615384615385, 44.1176470588235, 46.3709677419355, 39.8148148148148
), temperature = c(20.6834532374101, 30.952380952381, 40.8450704225352,
27.6923076923077, 21.9792865362486, 23.0769230769231, 32.3529411764706,
23.7903225806452, 20.7407407407407)), row.names = c("asthma",
"diabetes_type_one", "diabetes_type_two", "heart_disease", "hypertension",
"kidney_disease", "liver_disease", "lung_condition", "obesity"
), class = "data.frame")
有人可以帮忙吗?我正在尝试进行此分析但未成功。
这看起来像是一个二分图的结构,其中因子载荷或相关值作为边权重。
如果是这种情况,您首先需要将数据集转换为合适的格式 pivot from wide to long:
library(tidyr)
edge_list <- pivot_longer(data_piv, -Comorbidities)
您可以从那里构建图表:
g <- graph_from_data_frame(edge_list[,c(2:1,3)], directed = T)
你可以得到这样的最小生成树(这里,边权重存储在value
属性中):
mst_prim <- minimum.spanning.tree(g, weights=E(g)$value, algorithm = "prim")
我正在尝试在 R. 中进行图形分析,根据他们的症状经验寻找合并症中的不同群体。我收到此错误:
Error in `E<-`(`*tmp*`, value = 1:9) : invalid indexing
这是我的代码 运行:
G <- graph.data.frame(data_piv, directed = FALSE)
E(G)$weight=E(G)$V3
mst_prim = minimum.spanning.tree(G, weights=G$weight, algorithm = "prim")
这是我拥有的数据类型:
fake_data <-
structure(list(Comorbidities = c("asthma", "diabetes_type_one",
"diabetes_type_two", "heart_disease", "hypertension", "kidney_disease",
"liver_disease", "lung_condition", "obesity"), chills = c(25.8992805755396,
9.52380952380952, 18.3098591549296, 35.3846153846154, 19.9079401611047,
7.69230769230769, 38.2352941176471, 24.5967741935484, 18.3333333333333
), cough = c(59.1726618705036, 61.9047619047619, 57.0422535211268,
58.4615384615385, 58.3429228998849, 57.6923076923077, 55.8823529411765,
58.4677419354839, 57.7777777777778), diarrhoea = c(21.9424460431655,
9.52380952380952, 9.85915492957746, 27.6923076923077, 17.8365937859609,
19.2307692307692, 20.5882352941176, 19.758064516129, 21.2962962962963
), fatigue = c(60.431654676259, 47.6190476190476, 52.8169014084507,
61.5384615384615, 52.5891829689298, 46.1538461538462, 64.7058823529412,
56.0483870967742, 49.6296296296296), headache = c(43.705035971223,
28.5714285714286, 26.056338028169, 43.0769230769231, 37.7445339470656,
30.7692307692308, 44.1176470588235, 43.5483870967742, 40.3703703703704
), loss_smell_taste = c(20.863309352518, 14.2857142857143, 15.4929577464789,
27.6923076923077, 18.8722669735328, 19.2307692307692, 35.2941176470588,
20.9677419354839, 18.3333333333333), muscle_ache = c(47.6618705035971,
47.6190476190476, 38.0281690140845, 58.4615384615385, 44.1887226697353,
38.4615384615385, 61.7647058823529, 45.9677419354839, 44.2592592592593
), nasal_congestion = c(33.8129496402878, 19.047619047619, 28.169014084507,
30.7692307692308, 31.5304948216341, 30.7692307692308, 38.2352941176471,
38.7096774193548, 33.7037037037037), nausea_vomiting = c(10.0719424460432,
7.14285714285714, 7.74647887323944, 10.7692307692308, 5.75373993095512,
0, 8.82352941176471, 13.7096774193548, 8.14814814814815), shortness_breath = c(61.3309352517986,
28.5714285714286, 23.2394366197183, 53.8461538461538, 30.6098964326812,
57.6923076923077, 38.2352941176471, 50.8064516129032, 33.3333333333333
), sore_throat = c(46.5827338129496, 33.3333333333333, 35.9154929577465,
49.2307692307692, 49.2520138089758, 57.6923076923077, 64.7058823529412,
45.5645161290323, 48.7037037037037), sputum = c(47.4820143884892,
33.3333333333333, 40.1408450704225, 46.1538461538462, 36.9390103567319,
38.4615384615385, 44.1176470588235, 46.3709677419355, 39.8148148148148
), temperature = c(20.6834532374101, 30.952380952381, 40.8450704225352,
27.6923076923077, 21.9792865362486, 23.0769230769231, 32.3529411764706,
23.7903225806452, 20.7407407407407)), row.names = c("asthma",
"diabetes_type_one", "diabetes_type_two", "heart_disease", "hypertension",
"kidney_disease", "liver_disease", "lung_condition", "obesity"
), class = "data.frame")
有人可以帮忙吗?我正在尝试进行此分析但未成功。
这看起来像是一个二分图的结构,其中因子载荷或相关值作为边权重。 如果是这种情况,您首先需要将数据集转换为合适的格式 pivot from wide to long:
library(tidyr)
edge_list <- pivot_longer(data_piv, -Comorbidities)
您可以从那里构建图表:
g <- graph_from_data_frame(edge_list[,c(2:1,3)], directed = T)
你可以得到这样的最小生成树(这里,边权重存储在value
属性中):
mst_prim <- minimum.spanning.tree(g, weights=E(g)$value, algorithm = "prim")