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

2023-12-20

我不知道为什么将参数从自定义函数传递给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)

我注意到,当我将列名显式传递给group_by然后它就起作用了:

group_by(stations) %>%

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


这是另一种使其发挥作用的方法。您可以使用.data[[var]]构造存储为字符串的列名:

foo <- function(data, colName) {
  
  result <- data %>%
    group_by(.data[[colName]]) %>%
    summarise(count = n()) 
  
  return(result)
}

foo(quakes, "stations")

# A tibble: 102 x 2
   stations count
      <int> <int>
 1       10    20
 2       11    28
 3       12    25
 4       13    21
 5       14    39
 6       15    34
 7       16    35
 8       17    38
 9       18    33
10       19    29
# ... with 92 more rows

如果您决定不通过考试ColName作为字符串,您可以在函数内用一对大括号将其包裹起来,以获得类似的结果:

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

foo(quakes, stations)

# A tibble: 102 x 2
   stations count
      <int> <int>
 1       10    20
 2       11    28
 3       12    25
 4       13    21
 5       14    39
 6       15    34
 7       16    35
 8       17    38
 9       18    33
10       19    29
# ... with 92 more rows
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在 R 中组合/合并列

    我可能在这个问题上遗漏了一些很容易的东西 我在任何地方都找不到正确的答案 我真的需要继续前进 所以我过度简化了我的数据 eventID lt c 2 4 Time lt c 09 32 09 43 df1 lt data frame eve
  • R ggplot结合颜色图例和不同因子长度的填充

    我正在使用不完整因子设计的数据绘制图表 由于设计的原因 我的颜色手动比例和填充手动比例的长度不同 因此 我得到了两个传说 我怎样才能删除其中之一或者更好地将它们组合起来 我看过这些问题 合并单独的大小并填充 ggplot 中的图例 http
  • 如何计算两个邮政编码之间的距离?

    我有一个美国邮政编码列表 我必须计算所有邮政编码点之间的距离 它是一个 6k 邮政编码长列表 每个实体都有邮政编码 城市 州 纬度 经度 面积和人口 所以 我必须计算所有点之间的距离 即 6000C2 组合 这是我的数据示例 我已经在 SA
  • 我想将两个变量合并为一个具有日期格式的变量

    我有一个包含几个月的字符列的数据集 MONTH 和指示年份的数字列 YEAR 为了将其用作面板数据 我需要将这些结合起来YEAR and MONTH转换为日期格式的变量 我尝试过改变变量MONTH转换为数字格式 然后合并MONTH与柱YEA
  • 在 R 中,将一列值与所有其他列进行比较

    我对 R 非常陌生 我有一个问题对于这里的专家来说可能非常简单 假设我有一个表 sales 其中包含 4 个客户 ID 123 126 和 4 个产品 A B C D ID A B C D 123 0 1 1 0 124 1 1 0 0 1
  • 合并结果的行数多于一个数据框

    我有两个数据框 第一个包含 9994 行 第二个包含 60431 行 我想合并两个数据框 以便合并后的数据框包含两个数据框的组合列 但只包含 9994 行 但是 合并后我得到了超过 9994 行 我怎样才能确保这种情况不会发生 df1 re
  • R 中带有自定义字段类的参考类?

    我想在另一个引用类中使用自定义引用类 但此代码失败 nameClass lt setRefClass nameClass fields list first character last character methods list ini
  • 使用 R 中的剪切函数对缺失值进行 NA 级别[重复]

    这个问题在这里已经有答案了 R 中的 cut 函数省略了 NA 但我想要一个缺失值的级别 这是我的 MWE set seed 12345 Y lt c rnorm n 50 mean 500 sd 1 NA Y1 lt cut log Y
  • 在 R 中提取栅格的最快方法(提高我的可重现代码的时间)

    我想知道我是否已最大化提取栅格中某个点周围缓冲区域平均值的速度 本地的性能可以进一步提高吗 I use parallel mclapply已经 我知道我可以通过在集群上设置和运行它来获得进一步的收益 使用集群或获得更多的CPU不是我正在寻找
  • 数据框中的动物园滞后差异

    我想将滞后差异的结果放回到我的数据框中 这意味着我将拥有针对不同滞后的领先 NA 我在用 new df lag1 lt diff new df Close lag 1 differences 1 arithmetic TRUE na pad
  • 张量流:RStudio 中的 [NOT FOUND] 错误

    我尝试在中运行以下代码RStudio library tensorflow x data lt runif 100 min 0 max 1 y data lt x data 0 1 0 3 W lt tf Variable tf rando
  • 使用清单修改 Latex 文档中 R 代码的字体颜色

    我试图在 Latex 文档中突出显示 R 代码 但我似乎无法更改代码框中的字体颜色 举个例子 我认为commentstyle color red 应该给我红色字体的评论 但评论显示为蓝色或黑色 不太清楚 另外 我认为backgroundco
  • int NA 的内部表示[重复]

    这个问题在这里已经有答案了 这是关于 R 内部结构的问题 R 中如何表示整数 NA 值 与浮点不同 没有神奇的位序列来表示 NaN Create big array newer versions of R won t allocate me
  • 使用自定义指标的标准差选择带插入符号的调整参数

    我将插入符号与自定义拟合指标一起使用 但我不仅需要最大化该指标 还需要最大化其置信区间的下限 所以我想最大化类似的东西mean metric k stddev metric 我知道如何手动执行此操作 但是有没有办法告诉插入符使用此函数自动选
  • 如何设置对“句首字母大写”的引用?

    虽然我的条目在bibliography bib都是句子大小写 我的参考文献变成标题大小写 红色下划线 我该如何解决这个问题 Edit user2554330 的回答表明 csl文件必须被编辑 由于 rmarkdown 使用芝加哥引文和参考文
  • 升级到 Mac OSX 10.10 后,从 R 控制台运行系统命令无法找到已安装的程序

    我一直有一些奇怪的问题 https stackoverflow com questions 26477679 texi2dvi error when compiling tex files using rstudio and knitr s
  • 如何引用基于 data.frame 中的变量的列表?

    我有一张简单的桌子emp id and job code 我想返回正确的payout基于job code 我已经用嵌套的 ifelse 来解决这个问题 但是如果我有更多怎么办job code s library dplyr set seed
  • 带有预先计算值的 geom_boxplot

    过去 我已经能够使用 ggplot2 创建箱线图 方法是提供下须线 下分位数 中位数 上分位数和上须线以及 x 轴标签 例如 DF lt data frame x c A B min c 1 2 low c 2 3 mid c 3 4 to
  • 使Sweave + RweaveHTML将所有图形放在指定文件夹中

    作为细化这个问题 https stackoverflow com questions 4674567 how to make sweave copy generated graphics to a subfolder 有谁知道如何告诉 Sw
  • update() 具有局部协变量的函数内的模型

    我需要从函数内部更新回归模型 理想情况下 该函数应该适用于任何类型的模型 lm glm multinom clm 更准确地说 我需要添加函数内部定义的一个或多个协变量 这是一个例子 MyUpdate lt function model ra

随机推荐

  • 如何快速将 id 重新映射到连续数字

    我有一个很大的 csv 文件 其中的行看起来像 stringa stringb stringb stringc stringd stringa 我需要对其进行转换 以便 id 从 0 开始连续编号 在这种情况下 以下内容将起作用 0 1 1
  • 如何使用 GroupBox 标题的样式?

    我已经失去了GroupBox在我的表格中 他们的标题文本必须是Bold 我知道如何为一个人做到这一点GroupBox
  • 如何强制调用某些构造函数/函数以使用命名参数?

    我有一些构造函数和函数 我希望始终使用命名参数来调用它们 有没有办法要求这个 我希望能够对具有许多参数的构造函数和函数以及在使用命名参数时读得更清楚的构造函数和函数执行此操作 在 Kotlin 1 0 中 您可以通过使用来做到这一点Noth
  • 如何使 Ruby on Rails 中的 URL 对知道 @vendor.name 的 SEO 友好?

    我的申请在 RoR 中 我有一个名为 showsummary 的操作 视图 其中 ID 已传递到 URL 控制器已使用它来实例化 vendor 其中 vendor name 是公司名称 我希望 URL 中包含 vendor name 而不是
  • K 最短路径 Python 不工作

    我的 K 最短路径算法存在某些问题 代码如下 def K shortest Paths graph S T K 4 Initialize Variables Accordingly B P set count for U in graph
  • 如何在 Symfony 中排除 Sentry 的异常?

    我安装了 Symfony 4 3 并将其升级到 4 4 19 在我的旧安装中 Sentry 与排除异常配合得很好 我像这样使用它sentry yaml sentry dsn https email protected cdn cgi l e
  • SwiftUI 视图中的 StoreKit 委托/可观察对象

    当我恢复购买时 我需要禁用视图中的恢复按钮 I have IAPManager与 一起上课SKPaymentTransactionObserver 而且效果很好 我看到了print restored 当我打电话时 SKPaymentTran
  • 异步 CTP 错误 - 任务永远无法完成

    首先致歉 我无法将以下错误隔离到简单的控制台应用程序中 然而 在我相对简单的 ASP NET Web 窗体应用程序中 以下代码将导致当前线程无限期阻塞 public class MyModule IHttpModule public voi
  • 哪种算法最适合用 Python 解决“Boggle”这样的单词搜索游戏

    我正在编写一个类似的游戏Boggle http en wikipedia org wiki Boggle玩家应该在由随机字母组成的大字符串中找到单词 例如 有五个数组 里面有字符串 如下所示 五行 每行由六个字母组成 AMSDNS MASD
  • C# 将 CSV 加载到 DataGrid 中

    所以我有一个 CSV 文件 Header1 Header2 Header3 Header4 Data11 Data12 Data13 Data14 Data21 Data22 Data23 Data24 Data31 Data32 Data
  • 如何使 yolo v3 中的边界框更紧密(更靠近对象)?

    我正在关注这个Repo https github com ayooshkathuria YOLO v3 tutorial from scratch在 PyTorch 中从头开始创建 Yolo v3 模型 唯一的问题是 在我尝试的大多数图像中
  • 如何在 Javascript 中使用 getElementById 获取动态 id?

    我需要在 Javascript 中的 document getElementById 中获取动态值 但是 当我放置变量时它不起作用 如下所示 var myVar myVar test document getElementById myVa
  • 如何将配置文件添加到Spark 1.2.0中所有Spark执行器的类路径中?

    我正在使用类型安全配置 https github com typesafehub config https github com typesafehub config 使用配置文件参数化在纱线集群模式下运行的 Spark 作业 Typesa
  • 更改 matplotlib 中注释箭头的宽度

    我正在绘制一个箭头matplotlib using annotate 我想让箭头变粗 我想要的效果是一个带有细边缘线的双头箭头 我可以控制箭头宽度 即不改变linewidth 我努力了kwargs例如width after this htt
  • php 不扫描文件的相对路径

    这是我当前的代码 我为我第一次尝试 php 感到非常自豪 问题是 glob 在根目录 该脚本所在的位置 中再次正常工作 但是当我将其指向特定文件夹时 它返回找到的 0 个文件 我已经包含了 ftp 客户端的屏幕截图 显示了目录结构 如下 所
  • 有没有办法分部分读取大文本文件?

    我有一个大文件 60mb 我正在将文件读入字符串中 然后将该字符串返回给另一个方法 现在 当我将文件读入字符串时 它会给出系统内存不足异常 有没有办法分段读取文件并将其附加到字符串中 如果没有 有办法解决这个问题吗 static publi
  • Excel 中每 n 行求和

    28 10 100 29 210 30 40 20 84 41 130 42 43 30 75 44 740 45 46 40 73 47 220 如何对每 3 行 A29 A41 A44 A47 求和 我尝试了各种建议 例如this ht
  • 避免“在数字 eq (==) 中不是数字”警告的最佳方法

    usr bin env perl use warnings use 5 12 2 my c f could be a number too if c eq d c 9 say Hello world 避免 Argument f isn t
  • 使用对象属性作为字典中的键

    我想使用对象属性作为字典的键 这可以做到吗 这样做的最终目标是使用它 以便可以在对象可能处于的各种状态下查看属性是否被锁定 这些锁定的值不会持久存在 仅存在于模型的业务规则中 查看字段是否被锁定的理想代码如下所示 bool ageLocke
  • 如何将列名作为参数传递给 dplyr 动词的函数?

    我不知道为什么将参数从自定义函数传递给group by不起作用 我只是通过一个colName从数据集中 当我运行自己的函数时 会出现错误 必须按 data 中找到的变量进行分组 未找到列 colName 在下面的示例中我使用quakesR环