我是一名经常使用 R 的数据分析师。因此,我的大部分输出都是 .html 文件的形式(Rmarkdown、传单地图、plotly、d3.js、flexdashboard...等)。
在任何 Microsoft 应用程序中与同事共享这些文件的最简单/最顺畅的方式是什么?
例如,假设我制作了以下传单地图,我想与工作中的某人分享:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
</head>
<body>
<div id="map"></div>
<style>#map { height: 200px; }</style>
<script language="javascript" type="text/javascript">
var center = [-33.8650, 151.2094];
var map = L.map('map').setView(center, 3);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {maxZoom: 18}).addTo(map);
L.marker(center).addTo(map);
</script>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我似乎无法在 Microsoft 生态系统(Teams、Sharepoint、Onedrive、Power BI...等)中找到可以轻松显示此文件内容的任何地方。例如,如果我将文件上传到 Teams、Sharepoint 或 Onedrive,这些应用程序中的任何一个都无法预览文件的内容。下图是我在 Teams、Sharepoint 或 Onedrive 中打开它时发生的情况:
因此,您必须将每个文件下载到本地并在浏览器中打开。这不是一个理想的解决方案。我也无法在线托管这些数据,因为数据是私有的。为了轻松与同事共享,放置这些文件的最佳位置在哪里?
我试图在 R 传单中找到一种方法来包含覆盖按钮,该按钮可以过滤掉数据中的组。我还需要包括单选按钮,用于切换数据中表示的列。我似乎无法找到使用 addLayersControl() 函数在 R 传单中执行此操作的方法。
我最初认为可以将多个组添加到单个图层并使用 baseGroups 和 OverlayGroups(如下面的代码所示)。然而,这并没有达到预期的结果。如果有人能建议一种替代方法来实现这一目标,我将不胜感激。最好没有光泽。
library(dplyr)
library(leaflet)
data <- data.frame(Name = c("A", "A", "A", "B", "B", "C", "C", "C"),
Value1 = c(12,43,54,34,23,77,44,22),
Value2 = c(6,5,2,7,5,6,4,3),
Lat = c(51.1, 51.6, 57.3, 52.4, 56.3, 54.3, 60.4, 49.2),
Lon = c(5, -3, -2, -1, 4, 3, -5, 0))
data %>%
leaflet() %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addCircles(lat=~Lat, lng=~Lon, radius = ~Value1*1000, group=c(~Name, "Value1")) %>%
addCircles(lat=~Lat, lng=~Lon, radius = ~Value2, group=c(~Name, "Value2")) %>%
addLayersControl(
baseGroups = c("Value1", "Value2"),
overlayGroups = …Run Code Online (Sandbox Code Playgroud)