一些假设
您正在询问如何在 Excel 中执行此操作,但您的问题已标记为 R 和 Power BI(也是 RStudio,但已被编辑掉),因此我将向您展示如何使用 R 和 Power 执行此操作双。我还将向您展示为什么您会收到该错误消息,以及为什么您会收到一条错误消息,因为您的数据集不足以制作相关图。
我的回答
我假设您想绘制表格中城市之间人口的相关图。在该表中,您需要的信息不仅仅是每个城市一年的信息。我会检查您的数据源,看看您是否可以得出过去 10 年的人口数量。由于缺少您表中城市的确切数字,我将使用 10 个人口最多的国家/地区的人口的一些半编数字(根据您的数据结构):
Country 2017 2016 2015 2014 2013
China 1415045928 1412626453 1414944844 1411445597 1409517397
India 1354051854 1340371473 1339431384 1343418009 1339180127
United States 326766748 324472802 325279622 324521777 324459463
Indonesia 266794980 266244787 266591965 265394107 263991379
Brazil 210867954 210335253 209297939 209860881 209288278
Pakistan 200813818 199761249 200253292 197655630 197015955
Nigeria 195875237 192568158 195757661 191728478 190886311
Bangladesh 166368149 165630262 165936711 166124290 164669751
Russia 143964709 143658415 143146914 143341653 142989754
Mexcio 137590740 137486490 136768870 137177870 136590740
在 Power BI 中编写和调试 R 代码真的很痛苦,所以我建议安装 R studio,在那里编写你的小 R sn-ps,然后将其粘贴到 Power B 中。
您的错误消息的原因是函数cor() onlyt 将数字数据作为参数。在您的代码示例中,城市名称作为参数给出。您的代码示例中还有更多潜在的陷阱。您必须确保您的数据集是数字的。而且您必须确保您的数据集具有cor() 可以接受的形状。
下面是一个可以做到这一点的 R 脚本。复制以上数据,并将其存储在 C 盘上名为 data.xlsx 的文件中。
守则
library(corrplot)
library(readxl)
# Read data
setwd("C:/")
data <- read_excel("data.xlsx")
# Set Country names as row index
rownames(data) <- data$Country
# Remove Country from dataframe
data$Country <- NULL
# Transpose data into a readable format for cor()
data <- data.frame(t(data))
# Plot data
corrplot(cor(data))
剧情
Power BI
在 Power BI 中,您需要先导入数据,然后再将其用于 R 视觉对象:
复制这个:
Country,2017,2016,2015,2014,2013
China,1415045928,1412626453,1414944844,1411445597,1409517397
India,1354051854,1340371473,1339431384,1343418009,1339180127
United States,326766748,324472802,325279622,324521777,324459463
Indonesia,266794980,266244787,266591965,265394107,263991379
Brazil,210867954,210335253,209297939,209860881,209288278
Pakistan,200813818,199761249,200253292,197655630,197015955
Nigeria,195875237,192568158,195757661,191728478,190886311
Bangladesh,166368149,165630262,165936711,166124290,164669751
Russia,143964709,143658415,143146914,143341653,142989754
Mexcio,137590740,137486490,136768870,137177870,136590740
在您选择的文件夹中将其另存为 countries.csv,然后在 Power BI 中使用
获取数据 | Text/CSV,在对话框中点击Edit,在Power Query Editor中,点击Use First Row as headers 这样您的 Power Query 编辑器 中有此表:
单击关闭并应用 并确保您在VISUALIZATIONS | 下获得了可用的数据。字段:
点击可视化下的 R:
选择 FIELDS | 下的所有列国家/地区,以便您获得此设置:
获取我们上面准备的 R sn-p 的部分
library(corrplot)
# Set Country names as row index
data <- dataset
rownames(data) <- data$Country
# Remove Country from dataframe
data$Country <- NULL
# Transpose data into a readable format for cor()
data <- data.frame(t(data))
# Plot data
corrplot(cor(data))
并将其粘贴到 Power BI R 脚本编辑器:
点击运行R脚本:
你会得到这个:
就是这样!
如果您将过程更改为从 Excel 文件而不是文本文件导入数据(使用 Get Data | Excel ,您就成功地结合了 Excel、Power BI 和 R 的强大功能来生成一个散点图!
我希望这就是你要找的东西!