我试着制作一个网络情节来显示相关性。我的代码:
camas_desempleo %>%
select(-CCAA) %>%
correlate() %>%
network_plot()数据:
> dput(camas_desempleo)
structure(list(CCAA = c("andalucía", "cataluña", "comunitat valenciana",
"madrid, comunidad de", "canarias", "castilla - la mancha", "galicia",
"castilla y león", "país vasco", "extremadura", "murcia, región de",
"asturias, principado de", "aragón", "balears, illes", "cantabria"
), paro = c(884121, 418438.25, 393648.25, 368107, 225404, 185089.75,
175023.5, 151656.5, 125436, 109651.75, 106352, 76787.75, 71575.5,
63432.75, 40508.5), pub = c(572, 511, 450, 479, 187, 155, 215,
180, 158, 97, 112, 86, 113, 78, 40), priv = c(162, 141, 101,
225, 50, 13, 48, 20, 21, 5, 11, 7, 22, 46, 0), total = c(734,
652, 551, 704, 237, 168, 263, 200, 179, 102, 123, 93, 135, 124,
40)), row.names = c(NA, -15L), class = c("tbl_df", "tbl", "data.frame"
))给出的错误如下:
名称(X) <- value中的错误:‘same’属性2必须与向量1的长度相同,此外:警告消息:distance::cmdscale(abs(距离)):前两个特征值中只有一个大于0。 此外:警告消息:在stats::cmdscale(abs(距离)): 前两个特征值中只有一个大于0。
我在文档中找不到有关此错误的任何信息,而且对于mtcars数据集,使用相同的代码有一种相当类似的方法。
发布于 2020-06-18 22:37:46
当network_plot (这里的源代码)试图执行以下步骤(第188-189行)时,会出现问题:
points <- data.frame(stats::cmdscale(distance))
colnames(points) <- c("x", "y")network_plot代码假定它将处理带有2列的数据框架(默认情况下为stats::cmdscale)。但这不一定是真的。来自引用(?stats::cmdscale):
N个点上的一组欧几里德距离最多可在n-1维内精确表示.cmdscale遵循Mardia (1978)的分析,并返回最佳拟合的k维表示,其中k可能小于参数k。
> stats::cmdscale(distance)
[,1]
paro 0.118717157
pub 0.004476784
priv -0.106540786
total -0.016653154
Warning message:
In stats::cmdscale(distance) : only 1 of the first 2 eigenvalues are > 0在您的情况下,您只得到一列返回,因为只有一个内积矩阵的特征值是正的。你能找到绕过它的方法吗?不是的。这与输入数据的性质有关,即提供非欧几里德距离的事实。你可以在这个这里上读懂。
https://stackoverflow.com/questions/62394466
复制相似问题