小编mus*_*a00的帖子

如何将列名作为参数传递给 dplyr 动词的函数?

我不知道为什么从自定义函数传递参数不起作用group_by。我只是传递colName来自数据集的数据,当我运行自己的函数时,会出现错误:必须按 .data 中找到的变量进行分组。未找到列“colName”。在下面的示例中,我使用quakesR 环境中可用的数据集:

foo <- function(data, colName) {
  
  result <- data %>%
   group_by(colName) %>%
   summarise(count = n()) 

  return(result)
}

foo(quakes, "stations")

# I also tried passing w/o commas but it is not working too:
# foo(quakes, stations)
Run Code Online (Sandbox Code Playgroud)

我注意到,当我显式传递列名称时,group_by它会起作用:

group_by(stations) %>%
Run Code Online (Sandbox Code Playgroud)

但是,在函数中对列名称进行硬编码是没有意义的。

r dplyr

7
推荐指数
1
解决办法
978
查看次数

如何渲染 HTML 风格的传单标签?

我需要向地图上的每个现有标记添加标签(不是弹出窗口)。我创建了labelText存储标签 HTML 的变量。现在,当我使用它时,奇怪的事情发生了 - 每个标签显示来自整个数据集的数据,而不是分配给单个点的数据:

library(shiny)
library(leaflet)
library(dplyr)
library(sf)

ui <- fluidPage(
    leafletOutput("map")

)

server <- function(input, output, session) {
    
    coords <- quakes %>%
        sf::st_as_sf(coords = c("long","lat"), crs = 4326)
    
    labelText <- paste0("<b>Depth: </b>",coords$depth,"<br/>",
                                         "<b>Mag: </b>",coords$mag,"<br/>",
                                         "<b>Stations: </b>",coords$stations)    

    output$map <- leaflet::renderLeaflet({
    leaflet::leaflet() %>% 
      leaflet::addTiles() %>% 
      leaflet::setView(172.972965,-35.377261, zoom = 4) %>%
      
      leaflet::addCircleMarkers(
        data = coords,
        stroke = FALSE,
        radius = 6,
        label = ~htmltools::HTML(labelText)
        #label = ~htmltools::htmlEscape(labelText)
        #label = ~labelText
      )      
  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

我尝试了HTML和的不同组合htmlEscape …

r leaflet shiny r-leaflet

5
推荐指数
1
解决办法
1085
查看次数

在shinyapps上部署应用程序时出现目录问题

我编写了一个golem应用程序并想将其部署在shinyapp.io 上。不幸的是,每次我尝试这样做时都会出现以下错误(在日志中):

loadSupport(appDir, renv = sharedEnv, globalrenv = NULL) 中的警告:正在为 Shiny 应用程序加载 R/ 子目录,但该目录似乎包含 R 包。在 R/ 中获取文件可能会导致意外行为。

与我的项目相关的所有文件都存储在我的golem项目最初创建的一个目录中。我还检查了手动工作目录并将其设置为“R”文件夹(其中存储了 app_server 和 app_ui)。不幸的是,当我部署我的应用程序时,提到的错误再次出现。此外,每次我在 RStudio 中关闭项目时,我都会将工作区图像保存到“.RData”文件(该文件也存储在主目录中) - 也许这是一个问题(但我也尝试部署不包含该文件的文件)也失败)。我实在不知道问题出在哪里以及这个错误意味着什么。

有趣的是,常规(单个)app.R 可以毫无问题地部署在shinyapps 上。

r shiny shinyapps

4
推荐指数
1
解决办法
2071
查看次数

更新 NuGet 包后出现 System.NullReferenceException

我创建了一个新的 MVC 项目(简单模板),运行它,一切正常。但后来我更新了 NuGet 包,当我运行我的项目时,出现了错误:

System.NullReferenceException:未将对象引用设置到对象的实例

在调试模式下,此错误来自此行:

@Scripts.Render("~/bundles/bootstrap")
Run Code Online (Sandbox Code Playgroud)

我没有触及代码中的任何内容,只是更新了 NuGet 包。我的包看起来很标准,如下所示:

        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }
Run Code Online (Sandbox Code Playgroud)

我已经安装了 Bootstrap,并且所有文件都位于正确的目录中(css inContent和 js in Scripts)。有趣的是,当我更改ScriptBundleBundle之后,它就开始工作了。无论如何,我认为这不是一个合适的解决方案,您有什么想法如何使其符合标准吗ScriptBundle

c# asp.net-mvc

3
推荐指数
1
解决办法
2035
查看次数

如何使用VBA刷新Power Query?

我在 Power Query 中创建了一个查询。我需要做的是在运行宏时刷新 PQ 并保存工作簿。我尝试使用各种宏来执行此操作,但它们都没有刷新查询。我在其他工作簿中使用这个宏 - 它打开给定的工作簿,“刷新”它(但实际上没有,因为它持续太短)并关闭。有趣的是,当我在 Excel 功能区上运行“全部刷新”时,PQ 会刷新(所有连接和查询)。然而,当我使用ActiveWorkbook.RefreshAllthen 时,它根本不会刷新 PQ。

下面是我的宏,其中有多种刷新 PQ 的方法:

Sub RefreshQuery()

    Application.DisplayAlerts = False
    
    File = "C:\Users\User1\Desktop\MyFile.xlsx"
    Set MyWorkBook = Workbooks.Open(File)
   
    ActiveWorkbook.Queries.FastCombine = True 'ignores privacy levels on all computers
    
    'Refresh option #1
    ActiveWorkbook.RefreshAll
    
    'Refresh option #2
    For Each cn In ActiveWorkbook.Connections
        cn.Refresh
    Next cn

    'Refresh option #3
    ActiveWorkbook.Connections("GetStatData").Refresh

    'Refresh option #4
    ActiveWorkbook.Connections("Query - GetStatData").Refresh

    'Refresh option #5
    ActiveWorkbook.Query("GetStatData").Refresh

    ActiveWorkbook.Save
    Application.Wait (Now + TimeValue("00:00:03"))   
    ActiveWindow.Close

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba powerquery

1
推荐指数
1
解决办法
3万
查看次数

标签 统计

r ×3

shiny ×2

asp.net-mvc ×1

c# ×1

dplyr ×1

excel ×1

leaflet ×1

powerquery ×1

r-leaflet ×1

shinyapps ×1

vba ×1