R 包 HiveR 出错:HPD$edges$id2[n] <- grep(pat2, HPD$nodes$lab) 中的错误:替换长度为零



我正在尝试绘制蜂窝图,从而可视化网络。我正在使用";HiveR";包裹这是我的代码:

library(HiveR)
hive1 <- edge2HPD(edge_df = relations_tot)

但我得到了以下错误:

Error in HPD$edges$id2[n] <- grep(pat2, HPD$nodes$lab) : 
replacement has length zero

我的数据集是:

> dput(relations_tot)
structure(list(lab1 = c("Austria", "Austria", "Austria", "Austria", 
"Austria", "Austria", "Austria", "Austria", "Austria", "Austria", 
"Austria", "Austria", "Austria", "Austria", "Austria", "Austria", 
"Austria", "Austria", "Austria", "Austria", "Austria", "Belgium", 
"Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", 
"Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", 
"Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", 
"Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", 
"Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", 
"Belgium", "Belgium", "Cyprus", "Cyprus", "Cyprus", "Cyprus", 
"Cyprus", "Cyprus", "Cyprus", "Cyprus", "Cyprus", "Cyprus", "Cyprus", 
"Cyprus", "Cyprus", "Cyprus", "Cyprus", "Estonia", "Estonia", 
"Estonia", "Estonia", "Estonia", "Estonia", "Estonia", "Estonia", 
"Estonia", "Estonia", "Estonia", "Finland", "Finland", "Finland", 
"Finland", "Finland", "Finland", "Finland", "Finland", "Finland", 
"Finland", "Finland", "Finland", "Finland", "France", "France", 
"France", "France", "France", "France", "France"), lab2 = c("Finland", 
"Germany", "Greece", "Italy", "Latvia", "Netherlands", "Slovakia", 
"Slovenia", "Bulgaria", "Croatia", "Denmark", "Hungary", "Poland", 
"Romania", "Sweden", "United Kingdom", "Africa", "Asia", "Europe (rest of)", 
"North America", "South America", "Austria", "Cyprus", "Estonia", 
"Finland", "France", "Germany", "Greece", "Ireland", "Italy", 
"Latvia", "Lithuania", "Luxembourg", "Malta", "Netherlands", 
"Portugal", "Slovakia", "Slovenia", "Spain", "Bulgaria", "Croatia", 
"Czech Republic", "Denmark", "Hungary", "Poland", "Romania", 
"Sweden", "United Kingdom", "Africa", "Asia", "Europe (rest of)", 
"North America", "Oceania ", "South America", "Austria", "Belgium", 
"France", "Germany", "Greece", "Latvia", "Malta", "Netherlands", 
"Spain", "Africa", "Asia", "Europe (rest of)", "North America", 
"Oceania ", "South America", "Austria", "Finland", "Latvia", 
"Lithuania", "Netherlands", "Denmark", "Sweden", "United Kingdom", 
"Africa", "Europe (rest of)", "North America", "Belgium", "Estonia", 
"Germany", "Italy", "Latvia", "Netherlands", "Denmark", "Sweden", 
"United Kingdom", "Africa", "Asia", "Europe (rest of)", "South America", 
"Austria", "Belgium", "Germany", "Greece", "Ireland", "Italy", 
"Lithuania"), weight = c(1289230, 570990, 1490, 831013, 1085.99999999999, 
3203, 669, 4904, 293468, 2568, 290, 87319, 22525, 1529, 63118, 
15492, 38605, 40154.9999999999, 546517, 33217, 389, 171838, 2092788, 
4540193, 3622359, 109906515, 234046234, 4574268, 1903145, 60966459, 
1195178, 19822660, 95858806, 225985, 204163356, 31413980, 912207, 
487192, 54082177, 3919672, 7418114, 28661212, 4477883, 2138933, 
182520811, 46548202.9999999, 12146816, 30102392.9999999, 18650084, 
140902264, 191564127, 13024827, 6892758, 1667997, 479381, 24555, 
403645.999999999, 5062028, 3121531, 1919599, 391523, 39, 86360, 
1828518, 29985695, 3965455, 668100, 488828.999999999, 211750.999999999, 
11055, 3629498, 394460, 885.999999999999, 107, 915.999999999999, 
293220, 17, 55415, 72889, 6911, 7707, 1733272, 15606, 35273, 
210, 13813, 148, 52928, 8, 30998, 86, 314416, 152, 127728, 32827032, 
21213714, 6768593.99999999, 92478, 8853066, 5598)), row.names = c(4L, 
6L, 7L, 9L, 10L, 14L, 16L, 17L, 19L, 20L, 22L, 23L, 24L, 25L, 
26L, 27L, 28L, 29L, 30L, 31L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 
40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 
53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 
66L, 67L, 68L, 71L, 72L, 73L, 76L, 79L, 80L, 84L, 94L, 95L, 96L, 
97L, 98L, 99L, 100L, 103L, 109L, 110L, 113L, 121L, 125L, 126L, 
127L, 129L, 130L, 134L, 136L, 138L, 141L, 142L, 146L, 154L, 158L, 
159L, 160L, 161L, 162L, 165L, 166L, 167L, 171L, 172L, 173L, 174L, 
176L), class = "data.frame")

问题与此有关:带有括号的R grep模式regex

grep无法用您的函数处理带有排列的正则表达式。

当为lab1lab2 == "Europe (rest of)"时,则不返回匹配项。

我建议你把";欧洲(其他地区(";用";欧洲其他地区";在运行edge2HPD之前,例如使用str_replace

最新更新