gpt4 book ai didi

r - R 中的 zip/unzip 函数

转载 作者:行者123 更新时间:2023-12-03 21:29:53 26 4
gpt4 key购买 nike

我正在函数式编程语言(例如 Haskell、Scala)中寻找像 zip/unzip 这样的函数。

Examples from the Haskell reference .压缩:

Input: zip [1,2,3] [9,8,7]
Output: [(1,9),(2,8),(3,7)]

解压:
Input: unzip [(1,2),(2,3),(3,4)]
Output: ([1,2,3],[2,3,4])

在 R 中,输入看起来像这样。用于 zipper :
l1 <- list(1,2,3)
l2 <- list(9,8,7)
l <- Map(c, l1, l2)

解压:
tuple1 <- list(1,2)
tuple2 <- list(2,3)
tuple3 <- list(3,4)
l <- Map(c, tuple1, tuple2, tuple3)

R 中是否有任何内置解决方案/库来实现这些方法? (FP 函数往往有很多名称 - 搜索 zip/unzip & R 只会给我压缩/解压缩文件的结果。)

最佳答案

purrr package尝试提供很多 FP 原语。 purrr的 zip 版本称为 transpose() .

 L1 <- list(as.list(1:3),as.list(9:7))
library(purrr)
(L2 <- transpose(L1))
## List of 3
## $ :List of 2
## ..$ : int 1
## ..$ : int 9
## $ :List of 2
## ..$ : int 2
## ..$ : int 8
## $ :List of 2
## ..$ : int 3
## ..$ : int 7
identical(transpose(L2),L1) ## TRUE
transpose()也适用于您的第二个(解压缩)示例。

关于r - R 中的 zip/unzip 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40856504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com