首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么R的purrr::map()试图将我的输出转换为函数?

R的purrr::map()函数是一个用于迭代操作的函数,它可以将一个函数应用于一个列表或向量的每个元素,并返回一个包含结果的列表。在使用purrr::map()函数时,如果输出结果是一个函数,而不是期望的值,可能是因为输入的函数本身返回了一个函数。

这种情况通常发生在以下两种情况下:

  1. 输入的函数本身是一个高阶函数,它返回一个函数作为结果。在这种情况下,purrr::map()会将这个函数作为输出返回。
  2. 输入的函数在某些情况下返回一个函数,而在其他情况下返回一个值。这可能是由于函数内部的条件逻辑或其他控制流导致的。

要解决这个问题,可以检查输入的函数是否正确地返回了期望的值,而不是一个函数。可以通过在函数内部添加适当的条件逻辑或控制流来确保函数始终返回一个值。

如果以上方法无法解决问题,还可以尝试使用purrr::map_*()系列函数中的其他函数,例如purrr::map_dbl()、purrr::map_int()等,这些函数可以指定期望的输出类型,以避免将输出转换为函数。

关于purrr::map()函数的更多信息和使用示例,可以参考腾讯云的相关文档和示例代码:

腾讯云产品介绍链接:https://cloud.tencent.com/document/product/851/39088

示例代码:

代码语言:txt
复制
library(purrr)

# 定义一个返回函数的函数
return_function <- function(x) {
  function(y) {
    x + y
  }
}

# 使用purrr::map()函数
result <- purrr::map(1:5, return_function)
print(result)

# 使用purrr::map_int()函数指定输出类型
result_int <- purrr::map_int(1:5, return_function)
print(result_int)

以上代码中,我们定义了一个返回函数的函数return_function,并使用purrr::map()函数将其应用于1到5的每个元素。由于return_function返回的是一个函数,所以purrr::map()函数也返回了一个包含函数的列表。接着,我们使用purrr::map_int()函数指定输出类型为整数,这样就避免了将输出转换为函数的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R」用purrr实现迭代

迭代方式主要有两种: 命令式编程 - for和while 函数式编程 - purrr 准备工作 purrr是tidyverse核心r包之一,提供了一些更加强大编程工具。...接下来我们将学习和使用purrr包,它提供函数可以替代很多常见for循环应用。R基础包中apply应用函数族也可以完成类似的任务,但purrr函数更一致,也更容易学习。...每种类型输出都有一个相应函数map()用于输出列表 map_lgl()用于输出逻辑型向量 map_dbl()用于输出双精度型向量 map_chr()用于输出字符型向量 每个函数都使用一个向量(注意列表可以作为递归向量看待...$cyl) %>% map(function(df) lm(mpg ~ wt, data = df)) 因为在R中创建匿名函数语法比较复杂,所以purrr提供了一种更方便快捷方式——单侧公式...此处是给出R实现一种思想) 根据这个函数,我们可以涉及map3()、map4()等等,但这样实在无聊。

4.8K20
  • R-Purrr使用,加速数据处理

    R-Purrr使用,加速数据处理 Tidyverse中包含一个purrr程序包,之前在看数据处理分析时候,一直看到别人code中,涵盖purrrmap函数,但是一直不知道这个是干什么,现在发现purrr...Purrr 主要是替换for循环使用。 Purrr引入了map函数以及一些用于操纵list函数。cheatsheet可以速查一些关于Tidyverse使用方法。...这篇文章是快速教你使用purrr。 因为Purrr操作对象基本上都是关于list,所以对R基本Number,Vector,dataframe及list又个了解。..., 4, 7), addTen) 或者直接 map(c(1, 4, 7), addTen),当然了上面介绍了map函数可以有不同输出格式: map(c(1, 4, 7), addTen) # list...= addTen(.x))) }) 请注意,在这种情况下,我定义了一个“匿名”函数作为每次迭代输出

    70620

    R 数据整理(十一: 用purrr包实现更花样匿名函数使用)

    感觉purrr函数非常像py 中匿名函数相关函数。 而功能上,其起到作用更像是简化和丰富了apply 家族函数调用。...较为复杂数据, 有时表现为列表列表, 每个列表元素都是列表或者向量。JSON、YAML等格式转换为R对象就经常具有这种嵌套结构。...除此之外,map 还有其他变种: modify(),输入一个数据自变量和一个函数输出与输入数据同类型结果; map2()可以输入两个数据自变量和一个函数, 将两个自变量相同下标的元素用函数进行变换..., 输出列表; imap()根据一个下标遍历; walk()输入一个数据自变量和一个函数, 不返回任何结果,仅利用输入函数副作用; 输入若干个数据自变量和一个函数, 对数据自变量相同下标的元素用函数进行变换...输入类型和输出类型两两搭配, purrr包提供了27种map函数

    2.5K30

    Hadley Wickham 采访节选(二)

    purrr设计目的并不是说要实现base R中无法实现功能,只是base R这些底层函数使用起来太不方便而且容易出错,而purrr则用一种统一、安全方式去重新打包了这些函数。...但是话说回来,在我最近写包里面,我都尽量不使用purrr。 (purrrlogo) ? “ 等等,你为什么不愿意在你最近写这个包里面用purrr呢?...最近我不是在开发Bigrquiry这个包嘛(大猫:一个使用R从Google BigQuiry提取数据API),我发现如果我用了purrr,那么我就很难避免不用dplyr,因为purrr严重依赖dplyr...在下一个版本dplyr中,我将引入“quasi-quotation”这个概念,它让用dplyr写函数比以往要方便许多。...虽然有时候技术细节非常难懂,但我目的也并非理解这些细节,而是掌握最新技术动态(get the big idea),并试图将这些酷东西应用到R中去。 采 访节选:你在RStudio一天?

    69520

    R包基础实操—tidyverse包

    核心软件包是ggplot2、dplyr、tidyr、readr、purrr、tibble、stringr和forcats,它们提供了建模、转换和可视化数据功能。...其中,readr包用于读取数据,tidyr包用于整理数据,dplyr包用于数据转换,ggplot2包用于数据可视化,purrr包用于函数式编程。...1 readr包:快速读写 1-1 readr包提供了几个新函数,能够更快读取文件 readr包中主要函数有: read_csv,read_tsv,read_table,read_delim, write_csv...包:函数式编程 用R写循环从低到高有三种境界:手动 for 循环,apply 函数族,purrr 包泛函式编程。...包讲解 map系列函数返回值如下: map_chr(.x, .f): 返回字符型向量 map_lgl(.x, .f): 返回逻辑型向量 map_dbl(.x, .f): 返回实数型向量 map_int

    3.4K30

    R」tidyverse 中公式函数

    img 公式保存了创建它环境 使用到 R 朋友几乎都用过公式,它在统计建模方面给了我们极大方便。不过,公式相比于数值、逻辑值这些数据类型,有什么特点吗?...")= 从属性部分我们可以看到公式保存了创建它环境。...公式函数用法 核心是什么 公式函数优点在于提供了一种构造匿名函数简洁方式。而核心在于在同一行代码表示如何使用输入构造出输出。...2 次,使用公式函数结合 purrr 可以写出更简洁代码: df3 <- purrr::map_df(df, ~ (.x - mean(.x)) / sd(.x)) 我们检查下两种操作是否结果相同:...identical( purrr::map_df(df, ~ (.x - mean(.x)) / sd(.x)), purrr::map_df(df, ~ (. - mean(.)) / sd(

    4K20

    「Workshop」第四期:Tidyverse 实战批量建模可视化

    本次主要介绍了一些基本正则表达式用法以及公式创建和使用,然后介绍使用 tidyverse 组合拳进行批量建模和可视化。...查看本期代码[2] 资料: 小抄-因子[3] 小抄-purrr[4] 小抄-正则[5] 小抄-stringr[6] 内容: 字符处理基础 因子 手动 常见需求 基础字符串处理函数 映射 stringr...常用函数 建模基础:参考 https://www.jianshu.com/p/f8ce25fb2697 https://openbiox.github.io/Cookbook-for-R-Chinese...字符串公式 实战:结合 tidyverse 对 mtcars 进行批量建模和生成 ggplot2 图形 编程将变量名组合转为公式 目标数据结构与生成 分组处理 purrr 批量建模与可视化 图形拼接...[3] 小抄-因子: factors.pdf [4] 小抄-purrr: purrr.pdf [5] 小抄-正则: regex.pdf [6] 小抄-stringr: strings.pdf

    80820

    当所有细胞基因表达量相同时如何更好可视化?

    分享是一种态度 绘制FeaturePlot时,遇到基因在所有细胞中表达水平相同展示效果不理想情况,本文引入函数tryCatch()旨在解决上述问题,并将警告信息保存到日志文件中便于后续追踪。...1 加载R包 library(easypackages) packages <- c('ggplot2', 'cowplot', 'Seurat') libraries(packages) 2 挑选所有细胞中表达水平相同基因...::map(gene_set, feature_plot_fun) VlnPlot_plot <- purrr::map(gene_set, VlnPlot_plot_fun) featureplot1...4 tryCatch容错函数 try就像一个网,把try{}里面的代码所跑出异常都网住,然后把异常就给catch{}里面的代码去执行,最后执行finally之中代码。...feature_plot <- purrr::map(gene_set, feature_plot_fun) VlnPlot_plot <- purrr::map(gene_set, VlnPlot_plot_fun

    93310

    R语言进阶笔记5 | purrr替代循环

    purrr替代循环 1 purrr循环 引用知乎张敬信说法: ❝用 R 写 「循环」 从低到高有三种境界:手动 for 循环,apply 函数族,purrr 包泛函式编程。...❞ R写循环有三个境界: 手动for循环 apply循环 purrr泛函式编程 其中,手动for循环我最常用,apply系列半吊子,purrr函数一窍不通,所以要学习一下。...2 泛函式函数 泛函式定义 函数函数成为泛函式,map(x,f)中,map函数,f也是函数,f是map参数,那么map就是泛函数。...6.2 直接在函数内部写 这里,因为map函数用法是:map(.x, .f, ...)...1] -0.2338953 $x3 [1] -0.3660053 $x4 [1] 0.02137338 7 map用法1:批量建模 这里使用我R包learnasreml中MET数据,进行测试

    3.3K10

    irGSEA:基于秩次单细胞基因集富集分析整合框架

    审视结果 在这里,我们审视了17种常见FCS方法: GSEA 检测排序基因列表顶部或底部基因集富集程度,该列表是分组后计算排序基因信噪比或排序基因倍数变化得到; GSVA 估计所有细胞之间每个基因累积密度函数核...Sargent 将给定细胞非零表达基因从高表达到低表达进行排序,并将输入基因逐细胞表达矩阵转换为相应gene-set-by-cell assignment score matrix。...Python版本GSVA比R版本GSVA节约太多时间了。 我们对singscore、ssGSEA、JASMINE、viper内存峰值进行了优化。...::map( ~.x %>% dplyr::pull(symbol) %>% unique(.)) %>% purrr::set_names(levels(msigdb.h$geneset)) ##...::map( ~.x %>% dplyr::pull(symbol) %>% unique(.)) %>% purrr::set_names(levels(msigdb.go.bp$geneset)

    2.2K11
    领券