r语言combn函数在python中是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r语言combn函数在python中是啥相关的知识,希望对你有一定的参考价值。

参考技术A itertools.product。
r语言combn函数是一种排列组合的函数,python中排列组合的函数是itertools.product(sequence,repeat)。

|>(管道大于)在R中是啥意思?

【中文标题】|>(管道大于)在R中是啥意思?【英文标题】:What does |> (pipe greater than) mean in R?|>(管道大于)在R中是什么意思? 【发布时间】:2021-08-17 00:58:08 【问题描述】:

我最近在 R 中遇到了代码|>。它是一个竖线字符(竖线),后跟一个大于号。

这是一个例子:

mtcars |> head()

|> 代码在做什么?

【问题讨论】:

【参考方案1】:

|> 是基本的 R“管道”运算符。是new in version 4.1.0。

简而言之,管道运算符提供运算符左侧 (LHS) 的结果作为右侧 (RHS) 的 first 参数。

考虑以下几点:

1:3 |> sum()
#[1] 6

这里,数字 1 到 3 的向量作为sum 函数的第一个参数提供。

左侧结果总是成为右侧调用的第一个参数。考虑:

args(sum)
#function (..., na.rm = FALSE) 

c(1:3, NA_real_) |> sum(na.rm = TRUE)
#[1] 6

call 的强调很重要,因为只要第一个参数被命名,您就可以将 LHS 重定向到其他参数。考虑:

args(rnorm)
#function (n, mean = 0, sd = 1) 
100 |> rnorm(n = 5)
#[1]  99.94718  99.93527  97.46838  97.38352 100.56502

args(sum)
#function (..., na.rm = FALSE) 
sum(na.rm = TRUE, ... = c(1:2,NA_real_))
#[1] 3
TRUE |> sum(... = c(1:2,NA_real_))
#[1] NA

使用|> 运算符的一个好处是,与嵌套函数调用相比,它可以使代码在逻辑上更易于遵循:

split(x = iris[-5], f = iris$Species) |>
  lapply(min) |>
  do.call(what = rbind) 
#           [,1]
#setosa      0.1
#versicolor  1.0
#virginica   1.4

#Compared to:
do.call(rbind,lapply(split(iris[-5],iris$Species),min))

此功能类似于magrittr::%>% 运算符(也在dplyr 中实现)。

但是,与%>% 不同的是,目前没有办法将 LHS 多次通过管道输送到右侧或任意位置。 Magrittr 使用. LHS 占位符和 任意放置。

library(magrittr)
iris[iris$Sepal.Length > 7,] %>% subset(.$Species=="virginica")

TRUE %>% sum(c(1:2,NA_real_),na.rm = .)
[1] 3

此外,与基本 R |> 不同,%>% 运算符可以在没有 () 的情况下通过管道传递到函数调用:

1:3 |> sum
#Error: The pipe operator requires a function call as RHS

1:3 %>% sum
#[1] 6

【讨论】:

还值得注意的是,这会引发错误:1:3 |> sum 而这不会1:3 %>% sum 你可以使用匿名函数TRUE |> \(x) sum(c(1:2,NA_real_), na.rm = x)()# [1] 3 @akrun 我其实也想过做一个\() 问答,但也许你愿意? @G.Grothendieck 不是没有括号。 显然。这就是我要表达的观点。

以上是关于r语言combn函数在python中是啥的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中 if(0)是啥意思

r语言中acf函数的xaxp参数是啥意思

Perl,R,Python在生物信息学中是怎样的角色?

c语言是怎么用的 具体解释是啥?

r语言中两个等于号是啥意思

在用R语言编程中,界面上出现了“+”号,是啥意思?如何删除错误的输入,如何清屏?谢谢