0s autopkgtest [19:25:18]: starting date and time: 2024-03-16 19:25:18+0000 0s autopkgtest [19:25:18]: git checkout: b506e79c ssh-setup/nova: fix ARCH having two lines of data 0s autopkgtest [19:25:18]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.p4mlmzo7/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:r-base,src:curl,src:glib2.0,src:libpng1.6,src:libpsl,src:libtirpc,src:libxt,src:openssl,src:orthanc-python,src:readline,src:wp2latex --apt-upgrade r-cran-pbapply --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=r-base/4.3.3-2build1 curl/8.5.0-2ubuntu7 glib2.0/2.79.3-3ubuntu5 libpng1.6/1.6.43-3 libpsl/0.21.2-1.1 libtirpc/1.3.4+ds-1.1 libxt/1:1.2.1-1.2 openssl/3.0.13-0ubuntu1 orthanc-python/4.1+ds-2build3 readline/8.2-3.1 wp2latex/4.4~ds-1build1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-arm64-23.secgroup --name adt-noble-arm64-r-cran-pbapply-20240316-192518-juju-7f2275-prod-proposed-migration-environment-2 --image adt/ubuntu-noble-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 188s autopkgtest [19:28:26]: testbed dpkg architecture: arm64 188s autopkgtest [19:28:26]: testbed apt version: 2.7.12 188s autopkgtest [19:28:26]: @@@@@@@@@@@@@@@@@@@@ test bed setup 189s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 189s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [474 kB] 189s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [51.4 kB] 189s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [6540 B] 189s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [3657 kB] 189s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 Packages [646 kB] 189s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 c-n-f Metadata [3144 B] 189s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted arm64 Packages [33.6 kB] 189s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted arm64 c-n-f Metadata [116 B] 189s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 Packages [4013 kB] 189s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 c-n-f Metadata [8528 B] 189s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse arm64 Packages [55.5 kB] 189s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse arm64 c-n-f Metadata [116 B] 191s Fetched 9065 kB in 2s (5436 kB/s) 191s Reading package lists... 194s Reading package lists... 194s Building dependency tree... 194s Reading state information... 194s Calculating upgrade... 195s The following packages will be REMOVED: 195s libglib2.0-0 libssl3 195s The following NEW packages will be installed: 195s libglib2.0-0t64 libssl3t64 xdg-user-dirs 195s The following packages have been kept back: 195s curl 195s The following packages will be upgraded: 195s gir1.2-glib-2.0 libglib2.0-data libtirpc-common openssl readline-common 195s ubuntu-minimal ubuntu-standard 195s 7 upgraded, 3 newly installed, 2 to remove and 1 not upgraded. 195s Need to get 4613 kB of archives. 195s After this operation, 211 kB of additional disk space will be used. 195s Get:1 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 gir1.2-glib-2.0 arm64 2.79.3-3ubuntu5 [182 kB] 195s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libglib2.0-0t64 arm64 2.79.3-3ubuntu5 [1527 kB] 195s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 openssl arm64 3.0.13-0ubuntu1 [983 kB] 195s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libssl3t64 arm64 3.0.13-0ubuntu1 [1770 kB] 195s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libglib2.0-data all 2.79.3-3ubuntu5 [46.6 kB] 195s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc-common all 1.3.4+ds-1.1 [8018 B] 195s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 readline-common all 8.2-3.1 [56.4 kB] 195s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 ubuntu-minimal arm64 1.536 [10.7 kB] 195s Get:9 http://ftpmaster.internal/ubuntu noble/main arm64 xdg-user-dirs arm64 0.18-1 [18.1 kB] 195s Get:10 http://ftpmaster.internal/ubuntu noble/main arm64 ubuntu-standard arm64 1.536 [10.7 kB] 196s Fetched 4613 kB in 1s (6892 kB/s) 196s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74758 files and directories currently installed.) 196s Preparing to unpack .../gir1.2-glib-2.0_2.79.3-3ubuntu5_arm64.deb ... 196s Unpacking gir1.2-glib-2.0:arm64 (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 196s dpkg: libglib2.0-0:arm64: dependency problems, but removing anyway as you requested: 196s udisks2 depends on libglib2.0-0 (>= 2.77.0). 196s shared-mime-info depends on libglib2.0-0 (>= 2.75.3). 196s python3-gi depends on libglib2.0-0 (>= 2.77.0). 196s python3-dbus depends on libglib2.0-0 (>= 2.16.0). 196s netplan.io depends on libglib2.0-0 (>= 2.70.0). 196s netplan-generator depends on libglib2.0-0 (>= 2.70.0). 196s libxmlb2:arm64 depends on libglib2.0-0 (>= 2.54.0). 196s libvolume-key1:arm64 depends on libglib2.0-0 (>= 2.18.0). 196s libudisks2-0:arm64 depends on libglib2.0-0 (>= 2.75.3). 196s libqrtr-glib0:arm64 depends on libglib2.0-0 (>= 2.56). 196s libqmi-proxy depends on libglib2.0-0 (>= 2.30.0). 196s libqmi-glib5:arm64 depends on libglib2.0-0 (>= 2.54.0). 196s libpolkit-gobject-1-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 196s libpolkit-agent-1-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 196s libnetplan0:arm64 depends on libglib2.0-0 (>= 2.75.3). 196s libmm-glib0:arm64 depends on libglib2.0-0 (>= 2.62.0). 196s libmbim-proxy depends on libglib2.0-0 (>= 2.56). 196s libmbim-glib4:arm64 depends on libglib2.0-0 (>= 2.56). 196s libjson-glib-1.0-0:arm64 depends on libglib2.0-0 (>= 2.75.3). 196s libjcat1:arm64 depends on libglib2.0-0 (>= 2.75.3). 196s libgusb2:arm64 depends on libglib2.0-0 (>= 2.75.3). 196s libgudev-1.0-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 196s libgirepository-1.0-1:arm64 depends on libglib2.0-0 (>= 2.79.0). 196s libfwupd2:arm64 depends on libglib2.0-0 (>= 2.79.0). 196s libblockdev3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-utils3:arm64 depends on libglib2.0-0 (>= 2.75.3). 196s libblockdev-swap3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-part3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-nvme3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-mdraid3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-loop3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-fs3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s libblockdev-crypto3:arm64 depends on libglib2.0-0 (>= 2.42.2). 196s fwupd depends on libglib2.0-0 (>= 2.79.0). 196s bolt depends on libglib2.0-0 (>= 2.56.0). 196s 196s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74758 files and directories currently installed.) 196s Removing libglib2.0-0:arm64 (2.79.2-1~ubuntu1) ... 196s Selecting previously unselected package libglib2.0-0t64:arm64. 196s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74733 files and directories currently installed.) 196s Preparing to unpack .../libglib2.0-0t64_2.79.3-3ubuntu5_arm64.deb ... 196s libglib2.0-0t64.preinst: Removing /var/lib/dpkg/info/libglib2.0-0:arm64.postrm to avoid loss of /usr/share/glib-2.0/schemas/gschemas.compiled... 196s removed '/var/lib/dpkg/info/libglib2.0-0:arm64.postrm' 196s Unpacking libglib2.0-0t64:arm64 (2.79.3-3ubuntu5) ... 196s Preparing to unpack .../openssl_3.0.13-0ubuntu1_arm64.deb ... 196s Unpacking openssl (3.0.13-0ubuntu1) over (3.0.10-1ubuntu4) ... 196s dpkg: libssl3:arm64: dependency problems, but removing anyway as you requested: 196s wget depends on libssl3 (>= 3.0.0). 196s u-boot-tools depends on libssl3 (>= 3.0.0). 196s tnftp depends on libssl3 (>= 3.0.0). 196s tcpdump depends on libssl3 (>= 3.0.0). 196s systemd-resolved depends on libssl3 (>= 3.0.0). 196s systemd depends on libssl3 (>= 3.0.0). 196s sudo depends on libssl3 (>= 3.0.0). 196s sbsigntool depends on libssl3 (>= 3.0.0). 196s rsync depends on libssl3 (>= 3.0.0). 196s python3-cryptography depends on libssl3 (>= 3.0.0). 196s openssh-server depends on libssl3 (>= 3.0.10). 196s openssh-client depends on libssl3 (>= 3.0.10). 196s mtd-utils depends on libssl3 (>= 3.0.0). 196s mokutil depends on libssl3 (>= 3.0.0). 196s linux-headers-6.8.0-11-generic depends on libssl3 (>= 3.0.0). 196s libsystemd-shared:arm64 depends on libssl3 (>= 3.0.0). 196s libssh-4:arm64 depends on libssl3 (>= 3.0.0). 196s libsasl2-modules:arm64 depends on libssl3 (>= 3.0.0). 196s libsasl2-2:arm64 depends on libssl3 (>= 3.0.0). 196s libpython3.12-minimal:arm64 depends on libssl3 (>= 3.0.0). 196s libnvme1 depends on libssl3 (>= 3.0.0). 196s libkrb5-3:arm64 depends on libssl3 (>= 3.0.0). 196s libkmod2:arm64 depends on libssl3 (>= 3.0.0). 196s libfido2-1:arm64 depends on libssl3 (>= 3.0.0). 196s libcurl4:arm64 depends on libssl3 (>= 3.0.0). 196s libcryptsetup12:arm64 depends on libssl3 (>= 3.0.0). 196s kmod depends on libssl3 (>= 3.0.0). 196s dhcpcd-base depends on libssl3 (>= 3.0.0). 196s bind9-libs:arm64 depends on libssl3 (>= 3.0.0). 196s 196s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74758 files and directories currently installed.) 196s Removing libssl3:arm64 (3.0.10-1ubuntu4) ... 196s Selecting previously unselected package libssl3t64:arm64. 196s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74747 files and directories currently installed.) 196s Preparing to unpack .../0-libssl3t64_3.0.13-0ubuntu1_arm64.deb ... 196s Unpacking libssl3t64:arm64 (3.0.13-0ubuntu1) ... 197s Preparing to unpack .../1-libglib2.0-data_2.79.3-3ubuntu5_all.deb ... 197s Unpacking libglib2.0-data (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 197s Preparing to unpack .../2-libtirpc-common_1.3.4+ds-1.1_all.deb ... 197s Unpacking libtirpc-common (1.3.4+ds-1.1) over (1.3.4+ds-1build1) ... 197s Preparing to unpack .../3-readline-common_8.2-3.1_all.deb ... 197s Unpacking readline-common (8.2-3.1) over (8.2-3) ... 197s Preparing to unpack .../4-ubuntu-minimal_1.536_arm64.deb ... 197s Unpacking ubuntu-minimal (1.536) over (1.535) ... 197s Selecting previously unselected package xdg-user-dirs. 197s Preparing to unpack .../5-xdg-user-dirs_0.18-1_arm64.deb ... 197s Unpacking xdg-user-dirs (0.18-1) ... 197s Preparing to unpack .../6-ubuntu-standard_1.536_arm64.deb ... 197s Unpacking ubuntu-standard (1.536) over (1.535) ... 197s Setting up ubuntu-minimal (1.536) ... 197s Setting up xdg-user-dirs (0.18-1) ... 197s Setting up libssl3t64:arm64 (3.0.13-0ubuntu1) ... 197s Setting up libtirpc-common (1.3.4+ds-1.1) ... 197s Setting up ubuntu-standard (1.536) ... 197s Setting up libglib2.0-0t64:arm64 (2.79.3-3ubuntu5) ... 197s No schema files found: doing nothing. 197s Setting up libglib2.0-data (2.79.3-3ubuntu5) ... 197s Setting up gir1.2-glib-2.0:arm64 (2.79.3-3ubuntu5) ... 197s Setting up openssl (3.0.13-0ubuntu1) ... 197s Setting up readline-common (8.2-3.1) ... 197s Processing triggers for man-db (2.12.0-3) ... 197s Processing triggers for install-info (7.1-3) ... 198s Processing triggers for libc-bin (2.39-0ubuntu2) ... 198s Reading package lists... 198s Building dependency tree... 198s Reading state information... 199s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 199s Hit:1 http://ftpmaster.internal/ubuntu noble InRelease 199s Hit:2 http://ftpmaster.internal/ubuntu noble-updates InRelease 199s Hit:3 http://ftpmaster.internal/ubuntu noble-security InRelease 199s Hit:4 http://ftpmaster.internal/ubuntu noble-proposed InRelease 200s Reading package lists... 201s Reading package lists... 201s Building dependency tree... 201s Reading state information... 201s Calculating upgrade... 202s The following packages have been kept back: 202s curl 202s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 202s Reading package lists... 202s Building dependency tree... 202s Reading state information... 203s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 205s autopkgtest [19:28:43]: testbed running kernel: Linux 6.8.0-11-generic #11-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 14 02:53:31 UTC 2024 205s autopkgtest [19:28:43]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-pbapply 207s Get:1 http://ftpmaster.internal/ubuntu noble/universe r-cran-pbapply 1.7-2-1 (dsc) [2127 B] 207s Get:2 http://ftpmaster.internal/ubuntu noble/universe r-cran-pbapply 1.7-2-1 (tar) [24.0 kB] 207s Get:3 http://ftpmaster.internal/ubuntu noble/universe r-cran-pbapply 1.7-2-1 (diff) [2808 B] 208s gpgv: Signature made Fri Jun 30 14:06:59 2023 UTC 208s gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1 208s gpgv: issuer "tille@debian.org" 208s gpgv: Can't check signature: No public key 208s dpkg-source: warning: cannot verify inline signature for ./r-cran-pbapply_1.7-2-1.dsc: no acceptable signature found 208s autopkgtest [19:28:46]: testing package r-cran-pbapply version 1.7-2-1 208s autopkgtest [19:28:46]: build not needed 209s autopkgtest [19:28:47]: test run-unit-test: preparing testbed 210s Reading package lists... 210s Building dependency tree... 210s Reading state information... 211s Starting pkgProblemResolver with broken count: 0 211s Starting 2 pkgProblemResolver with broken count: 0 211s Done 211s The following additional packages will be installed: 211s curl fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 211s fonts-font-awesome fonts-glyphicons-halflings javascript-common libblas3 211s libcairo2 libcurl4t64 libdatrie1 libdeflate0 libfontconfig1 libgfortran5 211s libgomp1 libgraphite2-3 libharfbuzz0b libice6 libjbig0 libjpeg-turbo8 211s libjpeg8 libjs-bootstrap libjs-bootstrap4 libjs-d3 libjs-es5-shim 211s libjs-highlight.js libjs-jquery libjs-jquery-datatables 211s libjs-jquery-selectize.js libjs-jquery-ui libjs-json libjs-microplugin.js 211s libjs-popper.js libjs-sifter.js libjs-twitter-bootstrap-datepicker 211s liblapack3 liblerc4 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 211s libpaper-utils libpaper1 libpixman-1-0 libpng16-16t64 libpsl5t64 211s libreadline8t64 libsharpyuv0 libsm6 libtcl8.6 libthai-data libthai0 libtiff6 211s libtirpc3t64 libtk8.6 libwebp7 libxcb-render0 libxcb-shm0 libxft2 211s libxrender1 libxss1 libxt6t64 littler node-bootstrap-sass node-html5shiv 211s node-normalize.css r-base-core r-cran-base64enc r-cran-bslib r-cran-cachem 211s r-cran-cli r-cran-codetools r-cran-commonmark r-cran-crayon r-cran-digest 211s r-cran-ellipsis r-cran-fastmap r-cran-fontawesome r-cran-fs r-cran-future 211s r-cran-future.apply r-cran-globals r-cran-glue r-cran-htmltools 211s r-cran-httpuv r-cran-jquerylib r-cran-jsonlite r-cran-later r-cran-lifecycle 211s r-cran-listenv r-cran-littler r-cran-magrittr r-cran-memoise r-cran-mime 211s r-cran-parallelly r-cran-pbapply r-cran-pkgkitten r-cran-promises r-cran-r6 211s r-cran-rappdirs r-cran-rcpp r-cran-rlang r-cran-sass r-cran-shiny 211s r-cran-sourcetools r-cran-withr r-cran-xtable unzip x11-common xdg-utils zip 211s Suggested packages: 211s apache2 | lighttpd | httpd libjs-jquery-ui-docs tcl8.6 tk8.6 nodejs elpa-ess 211s r-doc-info | r-doc-pdf r-mathlib r-base-html r-cran-rstudioapi 211s r-cran-testthat r-cran-getopt r-cran-covr r-cran-knitr r-cran-rmarkdown 211s r-cran-httr r-cran-roxygen2 r-cran-inline r-cran-callr r-cran-plm r-cran-zoo 211s r-cran-survival 211s Recommended packages: 211s node-jquery r-recommended r-base-dev r-doc-html r-cran-curl r-cran-ggplot2 211s r-cran-knitr r-cran-rmarkdown r-cran-testthat r-cran-thematic r-cran-callr 211s r-cran-covr r-cran-htmlwidgets r-cran-mockery r-cran-processx r-cran-ps 211s r-cran-rprojroot r-cran-rstudioapi r-cran-tibble r-cran-whoami r-cran-xml2 211s r-cran-dplyr r-cran-rsvg r-cran-pillar r-cran-spelling r-cran-vctrs 211s r-cran-rhpcblasctl r-cran-r.rsp r-cran-markdown r-cran-dbi r-cran-rsqlite 211s r-cran-waldo r-cran-cairo r-cran-ragg r-cran-httr r-cran-sf r-cran-lintr 211s r-cran-tidyverse r-cran-r.utils r-cran-purrr r-cran-usethis r-cran-yaml 211s r-cran-dygraphs r-cran-lattice libfile-mimeinfo-perl libnet-dbus-perl 211s libx11-protocol-perl x11-utils x11-xserver-utils 211s The following packages will be REMOVED: 211s libcurl4 libpng16-16 libpsl5 libreadline8 libtirpc3 211s The following NEW packages will be installed: 211s autopkgtest-satdep fontconfig fontconfig-config fonts-dejavu-core 211s fonts-dejavu-mono fonts-font-awesome fonts-glyphicons-halflings 211s javascript-common libblas3 libcairo2 libcurl4t64 libdatrie1 libdeflate0 211s libfontconfig1 libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libice6 211s libjbig0 libjpeg-turbo8 libjpeg8 libjs-bootstrap libjs-bootstrap4 libjs-d3 211s libjs-es5-shim libjs-highlight.js libjs-jquery libjs-jquery-datatables 211s libjs-jquery-selectize.js libjs-jquery-ui libjs-json libjs-microplugin.js 211s libjs-popper.js libjs-sifter.js libjs-twitter-bootstrap-datepicker 211s liblapack3 liblerc4 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 211s libpaper-utils libpaper1 libpixman-1-0 libpng16-16t64 libpsl5t64 211s libreadline8t64 libsharpyuv0 libsm6 libtcl8.6 libthai-data libthai0 libtiff6 211s libtirpc3t64 libtk8.6 libwebp7 libxcb-render0 libxcb-shm0 libxft2 211s libxrender1 libxss1 libxt6t64 littler node-bootstrap-sass node-html5shiv 211s node-normalize.css r-base-core r-cran-base64enc r-cran-bslib r-cran-cachem 211s r-cran-cli r-cran-codetools r-cran-commonmark r-cran-crayon r-cran-digest 211s r-cran-ellipsis r-cran-fastmap r-cran-fontawesome r-cran-fs r-cran-future 211s r-cran-future.apply r-cran-globals r-cran-glue r-cran-htmltools 211s r-cran-httpuv r-cran-jquerylib r-cran-jsonlite r-cran-later r-cran-lifecycle 211s r-cran-listenv r-cran-littler r-cran-magrittr r-cran-memoise r-cran-mime 211s r-cran-parallelly r-cran-pbapply r-cran-pkgkitten r-cran-promises r-cran-r6 211s r-cran-rappdirs r-cran-rcpp r-cran-rlang r-cran-sass r-cran-shiny 211s r-cran-sourcetools r-cran-withr r-cran-xtable unzip x11-common xdg-utils zip 211s The following packages will be upgraded: 211s curl 211s 1 upgraded, 111 newly installed, 5 to remove and 0 not upgraded. 211s Need to get 61.7 MB/61.7 MB of archives. 211s After this operation, 140 MB of additional disk space will be used. 211s Get:1 /tmp/autopkgtest.zONO95/1-autopkgtest-satdep.deb autopkgtest-satdep arm64 0 [732 B] 212s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpsl5t64 arm64 0.21.2-1.1 [57.4 kB] 212s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 curl arm64 8.5.0-2ubuntu7 [222 kB] 212s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libcurl4t64 arm64 8.5.0-2ubuntu7 [332 kB] 212s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpng16-16t64 arm64 1.6.43-3 [185 kB] 212s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libreadline8t64 arm64 8.2-3.1 [153 kB] 212s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc3t64 arm64 1.3.4+ds-1.1 [83.5 kB] 212s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-dejavu-mono all 2.37-8 [502 kB] 212s Get:9 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-dejavu-core all 2.37-8 [835 kB] 212s Get:10 http://ftpmaster.internal/ubuntu noble/main arm64 fontconfig-config arm64 2.15.0-1ubuntu1 [37.0 kB] 212s Get:11 http://ftpmaster.internal/ubuntu noble/main arm64 libfontconfig1 arm64 2.15.0-1ubuntu1 [142 kB] 212s Get:12 http://ftpmaster.internal/ubuntu noble/main arm64 fontconfig arm64 2.15.0-1ubuntu1 [190 kB] 212s Get:13 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 212s Get:14 http://ftpmaster.internal/ubuntu noble/universe arm64 fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-3 [118 kB] 212s Get:15 http://ftpmaster.internal/ubuntu noble/main arm64 javascript-common all 11+nmu1 [5936 B] 212s Get:16 http://ftpmaster.internal/ubuntu noble/main arm64 libblas3 arm64 3.12.0-3 [143 kB] 212s Get:17 http://ftpmaster.internal/ubuntu noble/main arm64 libpixman-1-0 arm64 0.42.2-1 [193 kB] 212s Get:18 http://ftpmaster.internal/ubuntu noble/main arm64 libxcb-render0 arm64 1.15-1 [16.1 kB] 212s Get:19 http://ftpmaster.internal/ubuntu noble/main arm64 libxcb-shm0 arm64 1.15-1 [5780 B] 212s Get:20 http://ftpmaster.internal/ubuntu noble/main arm64 libxrender1 arm64 1:0.9.10-1.1 [19.1 kB] 212s Get:21 http://ftpmaster.internal/ubuntu noble/main arm64 libcairo2 arm64 1.18.0-1 [550 kB] 212s Get:22 http://ftpmaster.internal/ubuntu noble/main arm64 libdatrie1 arm64 0.2.13-3 [21.7 kB] 212s Get:23 http://ftpmaster.internal/ubuntu noble/main arm64 libdeflate0 arm64 1.19-1 [43.4 kB] 212s Get:24 http://ftpmaster.internal/ubuntu noble/main arm64 libgfortran5 arm64 14-20240303-1ubuntu1 [444 kB] 212s Get:25 http://ftpmaster.internal/ubuntu noble/main arm64 libgomp1 arm64 14-20240303-1ubuntu1 [144 kB] 212s Get:26 http://ftpmaster.internal/ubuntu noble/main arm64 libgraphite2-3 arm64 1.3.14-2 [81.5 kB] 212s Get:27 http://ftpmaster.internal/ubuntu noble/main arm64 libharfbuzz0b arm64 8.3.0-2 [463 kB] 212s Get:28 http://ftpmaster.internal/ubuntu noble/main arm64 x11-common all 1:7.7+23ubuntu2 [23.4 kB] 212s Get:29 http://ftpmaster.internal/ubuntu noble/main arm64 libice6 arm64 2:1.0.10-1build2 [41.7 kB] 212s Get:30 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-turbo8 arm64 2.1.5-2ubuntu1 [160 kB] 212s Get:31 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg8 arm64 8c-2ubuntu11 [2148 B] 212s Get:32 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-bootstrap all 3.4.1+dfsg-3 [129 kB] 212s Get:33 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 212s Get:34 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-bootstrap4 all 4.6.1+dfsg1-4 [537 kB] 212s Get:35 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-d3 all 3.5.17-4 [132 kB] 212s Get:36 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-es5-shim all 4.6.7-2 [39.8 kB] 212s Get:37 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 212s Get:38 http://ftpmaster.internal/ubuntu noble/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 212s Get:39 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-jquery-datatables all 1.11.5+dfsg-2 [146 kB] 212s Get:40 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-sifter.js all 0.6.0+dfsg-3 [12.6 kB] 213s Get:41 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-microplugin.js all 0.0.3+dfsg-1.1 [3712 B] 213s Get:42 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-jquery-selectize.js all 0.12.6+dfsg-1.1 [51.0 kB] 213s Get:43 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-jquery-ui all 1.13.2+dfsg-1 [252 kB] 213s Get:44 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-json all 0~20221030+~1.0.8-1 [20.6 kB] 213s Get:45 http://ftpmaster.internal/ubuntu noble/main arm64 liblapack3 arm64 3.12.0-3 [2241 kB] 213s Get:46 http://ftpmaster.internal/ubuntu noble/main arm64 liblerc4 arm64 4.0.0+ds-4ubuntu1 [153 kB] 213s Get:47 http://ftpmaster.internal/ubuntu noble/main arm64 libthai-data all 0.1.29-2 [158 kB] 213s Get:48 http://ftpmaster.internal/ubuntu noble/main arm64 libthai0 arm64 0.1.29-2 [18.1 kB] 213s Get:49 http://ftpmaster.internal/ubuntu noble/main arm64 libpango-1.0-0 arm64 1.51.0+ds-4 [226 kB] 213s Get:50 http://ftpmaster.internal/ubuntu noble/main arm64 libpangoft2-1.0-0 arm64 1.51.0+ds-4 [41.2 kB] 213s Get:51 http://ftpmaster.internal/ubuntu noble/main arm64 libpangocairo-1.0-0 arm64 1.51.0+ds-4 [27.6 kB] 213s Get:52 http://ftpmaster.internal/ubuntu noble/main arm64 libpaper1 arm64 1.1.29 [13.1 kB] 213s Get:53 http://ftpmaster.internal/ubuntu noble/main arm64 libpaper-utils arm64 1.1.29 [8480 B] 213s Get:54 http://ftpmaster.internal/ubuntu noble/main arm64 libsharpyuv0 arm64 1.3.2-0.4 [14.4 kB] 213s Get:55 http://ftpmaster.internal/ubuntu noble/main arm64 libsm6 arm64 2:1.2.3-1build2 [16.1 kB] 213s Get:56 http://ftpmaster.internal/ubuntu noble/main arm64 libtcl8.6 arm64 8.6.13+dfsg-2 [980 kB] 213s Get:57 http://ftpmaster.internal/ubuntu noble/main arm64 libjbig0 arm64 2.1-6.1ubuntu1 [28.9 kB] 213s Get:58 http://ftpmaster.internal/ubuntu noble/main arm64 libwebp7 arm64 1.3.2-0.4 [191 kB] 213s Get:59 http://ftpmaster.internal/ubuntu noble/main arm64 libtiff6 arm64 4.5.1+git230720-3ubuntu1 [226 kB] 213s Get:60 http://ftpmaster.internal/ubuntu noble/main arm64 libxft2 arm64 2.3.6-1 [43.3 kB] 213s Get:61 http://ftpmaster.internal/ubuntu noble/main arm64 libxss1 arm64 1:1.2.3-1build2 [8252 B] 213s Get:62 http://ftpmaster.internal/ubuntu noble/main arm64 libtk8.6 arm64 8.6.13-2 [760 kB] 213s Get:63 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libxt6t64 arm64 1:1.2.1-1.2 [168 kB] 213s Get:64 http://ftpmaster.internal/ubuntu noble/main arm64 zip arm64 3.0-13 [172 kB] 213s Get:65 http://ftpmaster.internal/ubuntu noble/main arm64 unzip arm64 6.0-28ubuntu3 [171 kB] 213s Get:66 http://ftpmaster.internal/ubuntu noble/main arm64 xdg-utils all 1.1.3-4.1ubuntu3 [62.0 kB] 213s Get:67 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 r-base-core arm64 4.3.3-2build1 [26.8 MB] 214s Get:68 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-littler arm64 0.3.19-1 [93.4 kB] 214s Get:69 http://ftpmaster.internal/ubuntu noble/universe arm64 littler all 0.3.19-1 [2472 B] 214s Get:70 http://ftpmaster.internal/ubuntu noble/universe arm64 node-bootstrap-sass all 3.4.3-2 [187 kB] 214s Get:71 http://ftpmaster.internal/ubuntu noble/universe arm64 node-html5shiv all 3.7.3+dfsg-5 [13.5 kB] 214s Get:72 http://ftpmaster.internal/ubuntu noble/universe arm64 node-normalize.css all 8.0.1-5 [10.8 kB] 214s Get:73 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-base64enc arm64 0.1-3-3 [27.4 kB] 214s Get:74 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-rlang arm64 1.1.3-1 [1663 kB] 214s Get:75 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-fastmap arm64 1.1.1-1 [69.6 kB] 214s Get:76 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-cachem arm64 1.0.8-1 [72.3 kB] 214s Get:77 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-digest arm64 0.6.34-1 [182 kB] 214s Get:78 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-ellipsis arm64 0.3.2-2 [35.5 kB] 214s Get:79 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-htmltools arm64 0.5.7-1 [369 kB] 214s Get:80 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-jquerylib all 0.1.4+dfsg-4 [13.5 kB] 214s Get:81 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-jsonlite arm64 1.8.8+dfsg-1 [441 kB] 214s Get:82 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-cli arm64 3.6.2-1 [1377 kB] 214s Get:83 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-glue arm64 1.7.0-1 [154 kB] 214s Get:84 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-lifecycle all 1.0.4+dfsg-1 [110 kB] 214s Get:85 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-memoise all 2.0.1-1 [53.9 kB] 214s Get:86 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-mime arm64 0.12-1 [35.8 kB] 214s Get:87 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-fs arm64 1.6.3+dfsg-1 [227 kB] 214s Get:88 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-r6 all 2.5.1-1 [99.0 kB] 214s Get:89 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-rappdirs arm64 0.3.3-1 [47.5 kB] 214s Get:90 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-sass arm64 0.4.8+dfsg-1 [952 kB] 214s Get:91 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-bslib all 0.6.1+dfsg-1 [5138 kB] 214s Get:92 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-codetools all 0.2-19-1 [90.5 kB] 214s Get:93 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-commonmark arm64 1.9.1-1 [127 kB] 214s Get:94 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-crayon all 1.5.2-1 [164 kB] 214s Get:95 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-fontawesome all 0.5.2-1 [1300 kB] 215s Get:96 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-globals all 0.16.2-1 [117 kB] 215s Get:97 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-listenv all 0.9.1+dfsg-1 [112 kB] 215s Get:98 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-parallelly arm64 1.37.1-1 [364 kB] 215s Get:99 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-future all 1.33.1+dfsg-1 [634 kB] 215s Get:100 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-future.apply all 1.11.1+dfsg-1 [171 kB] 215s Get:101 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-pkgkitten all 0.2.3-1 [25.1 kB] 215s Get:102 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-rcpp arm64 1.0.12-1 [1971 kB] 215s Get:103 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-later arm64 1.3.2+dfsg-1 [120 kB] 215s Get:104 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-magrittr arm64 2.0.3-1 [154 kB] 215s Get:105 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-promises arm64 1.2.1+dfsg-1 [282 kB] 215s Get:106 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-httpuv arm64 1.6.14+dfsg-1 [496 kB] 215s Get:107 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-pbapply all 1.7-2-1 [102 kB] 215s Get:108 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-xtable all 1:1.8-4-2 [689 kB] 215s Get:109 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-sourcetools arm64 0.1.7-1-1 [47.2 kB] 215s Get:110 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-withr all 2.5.0-1 [225 kB] 215s Get:111 http://ftpmaster.internal/ubuntu noble/universe arm64 libjs-twitter-bootstrap-datepicker all 1.3.1+dfsg1-4.1 [28.5 kB] 215s Get:112 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-shiny all 1.8.0+dfsg-1 [2762 kB] 216s Preconfiguring packages ... 216s Fetched 61.7 MB in 4s (15.7 MB/s) 216s dpkg: libpsl5:arm64: dependency problems, but removing anyway as you requested: 216s wget depends on libpsl5 (>= 0.16.0). 216s libcurl4:arm64 depends on libpsl5 (>= 0.16.0). 216s libcurl3-gnutls:arm64 depends on libpsl5 (>= 0.16.0). 216s 216s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74774 files and directories currently installed.) 216s Removing libpsl5:arm64 (0.21.2-1build1) ... 217s Selecting previously unselected package libpsl5t64:arm64. 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74769 files and directories currently installed.) 217s Preparing to unpack .../libpsl5t64_0.21.2-1.1_arm64.deb ... 217s Unpacking libpsl5t64:arm64 (0.21.2-1.1) ... 217s Preparing to unpack .../curl_8.5.0-2ubuntu7_arm64.deb ... 217s Unpacking curl (8.5.0-2ubuntu7) over (8.5.0-2ubuntu2) ... 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74775 files and directories currently installed.) 217s Removing libcurl4:arm64 (8.5.0-2ubuntu2) ... 217s Selecting previously unselected package libcurl4t64:arm64. 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74770 files and directories currently installed.) 217s Preparing to unpack .../libcurl4t64_8.5.0-2ubuntu7_arm64.deb ... 217s Unpacking libcurl4t64:arm64 (8.5.0-2ubuntu7) ... 217s dpkg: libpng16-16:arm64: dependency problems, but removing anyway as you requested: 217s libplymouth5:arm64 depends on libpng16-16 (>= 1.6.2). 217s libfreetype6:arm64 depends on libpng16-16 (>= 1.6.2-1). 217s 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74776 files and directories currently installed.) 217s Removing libpng16-16:arm64 (1.6.43-1) ... 217s Selecting previously unselected package libpng16-16t64:arm64. 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74766 files and directories currently installed.) 217s Preparing to unpack .../libpng16-16t64_1.6.43-3_arm64.deb ... 217s Unpacking libpng16-16t64:arm64 (1.6.43-3) ... 217s dpkg: libreadline8:arm64: dependency problems, but removing anyway as you requested: 217s parted depends on libreadline8 (>= 6.0). 217s libpython3.12-stdlib:arm64 depends on libreadline8 (>= 7.0~beta). 217s gpgsm depends on libreadline8 (>= 6.0). 217s gpgconf depends on libreadline8 (>= 6.0). 217s gpg depends on libreadline8 (>= 6.0). 217s gawk depends on libreadline8 (>= 6.0). 217s fdisk depends on libreadline8 (>= 6.0). 217s 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74777 files and directories currently installed.) 217s Removing libreadline8:arm64 (8.2-3) ... 217s Selecting previously unselected package libreadline8t64:arm64. 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74765 files and directories currently installed.) 217s Preparing to unpack .../libreadline8t64_8.2-3.1_arm64.deb ... 217s Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' 217s Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' 217s Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' 217s Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' 217s Unpacking libreadline8t64:arm64 (8.2-3.1) ... 217s dpkg: libtirpc3:arm64: dependency problems, but removing anyway as you requested: 217s lsof depends on libtirpc3 (>= 1.0.2). 217s libpython3.12-stdlib:arm64 depends on libtirpc3 (>= 1.0.2). 217s libnss-nisplus:arm64 depends on libtirpc3 (>= 1.0.2). 217s libnsl2:arm64 depends on libtirpc3 (>= 1.0.2). 217s iproute2 depends on libtirpc3 (>= 1.0.2). 217s 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74785 files and directories currently installed.) 217s Removing libtirpc3:arm64 (1.3.4+ds-1build1) ... 217s Selecting previously unselected package libtirpc3t64:arm64. 217s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 74779 files and directories currently installed.) 217s Preparing to unpack .../000-libtirpc3t64_1.3.4+ds-1.1_arm64.deb ... 217s Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3 to /lib/aarch64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' 217s Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3.0.0 to /lib/aarch64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' 217s Unpacking libtirpc3t64:arm64 (1.3.4+ds-1.1) ... 217s Selecting previously unselected package fonts-dejavu-mono. 217s Preparing to unpack .../001-fonts-dejavu-mono_2.37-8_all.deb ... 217s Unpacking fonts-dejavu-mono (2.37-8) ... 217s Selecting previously unselected package fonts-dejavu-core. 217s Preparing to unpack .../002-fonts-dejavu-core_2.37-8_all.deb ... 217s Unpacking fonts-dejavu-core (2.37-8) ... 217s Selecting previously unselected package fontconfig-config. 217s Preparing to unpack .../003-fontconfig-config_2.15.0-1ubuntu1_arm64.deb ... 218s Unpacking fontconfig-config (2.15.0-1ubuntu1) ... 218s Selecting previously unselected package libfontconfig1:arm64. 218s Preparing to unpack .../004-libfontconfig1_2.15.0-1ubuntu1_arm64.deb ... 218s Unpacking libfontconfig1:arm64 (2.15.0-1ubuntu1) ... 218s Selecting previously unselected package fontconfig. 218s Preparing to unpack .../005-fontconfig_2.15.0-1ubuntu1_arm64.deb ... 218s Unpacking fontconfig (2.15.0-1ubuntu1) ... 218s Selecting previously unselected package fonts-font-awesome. 218s Preparing to unpack .../006-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 218s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 218s Selecting previously unselected package fonts-glyphicons-halflings. 218s Preparing to unpack .../007-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-3_all.deb ... 218s Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 218s Selecting previously unselected package javascript-common. 218s Preparing to unpack .../008-javascript-common_11+nmu1_all.deb ... 218s Unpacking javascript-common (11+nmu1) ... 218s Selecting previously unselected package libblas3:arm64. 218s Preparing to unpack .../009-libblas3_3.12.0-3_arm64.deb ... 218s Unpacking libblas3:arm64 (3.12.0-3) ... 218s Selecting previously unselected package libpixman-1-0:arm64. 218s Preparing to unpack .../010-libpixman-1-0_0.42.2-1_arm64.deb ... 218s Unpacking libpixman-1-0:arm64 (0.42.2-1) ... 218s Selecting previously unselected package libxcb-render0:arm64. 218s Preparing to unpack .../011-libxcb-render0_1.15-1_arm64.deb ... 218s Unpacking libxcb-render0:arm64 (1.15-1) ... 218s Selecting previously unselected package libxcb-shm0:arm64. 218s Preparing to unpack .../012-libxcb-shm0_1.15-1_arm64.deb ... 218s Unpacking libxcb-shm0:arm64 (1.15-1) ... 218s Selecting previously unselected package libxrender1:arm64. 218s Preparing to unpack .../013-libxrender1_1%3a0.9.10-1.1_arm64.deb ... 218s Unpacking libxrender1:arm64 (1:0.9.10-1.1) ... 218s Selecting previously unselected package libcairo2:arm64. 218s Preparing to unpack .../014-libcairo2_1.18.0-1_arm64.deb ... 218s Unpacking libcairo2:arm64 (1.18.0-1) ... 218s Selecting previously unselected package libdatrie1:arm64. 218s Preparing to unpack .../015-libdatrie1_0.2.13-3_arm64.deb ... 218s Unpacking libdatrie1:arm64 (0.2.13-3) ... 218s Selecting previously unselected package libdeflate0:arm64. 218s Preparing to unpack .../016-libdeflate0_1.19-1_arm64.deb ... 218s Unpacking libdeflate0:arm64 (1.19-1) ... 218s Selecting previously unselected package libgfortran5:arm64. 218s Preparing to unpack .../017-libgfortran5_14-20240303-1ubuntu1_arm64.deb ... 218s Unpacking libgfortran5:arm64 (14-20240303-1ubuntu1) ... 218s Selecting previously unselected package libgomp1:arm64. 218s Preparing to unpack .../018-libgomp1_14-20240303-1ubuntu1_arm64.deb ... 218s Unpacking libgomp1:arm64 (14-20240303-1ubuntu1) ... 218s Selecting previously unselected package libgraphite2-3:arm64. 218s Preparing to unpack .../019-libgraphite2-3_1.3.14-2_arm64.deb ... 218s Unpacking libgraphite2-3:arm64 (1.3.14-2) ... 218s Selecting previously unselected package libharfbuzz0b:arm64. 218s Preparing to unpack .../020-libharfbuzz0b_8.3.0-2_arm64.deb ... 218s Unpacking libharfbuzz0b:arm64 (8.3.0-2) ... 218s Selecting previously unselected package x11-common. 218s Preparing to unpack .../021-x11-common_1%3a7.7+23ubuntu2_all.deb ... 218s Unpacking x11-common (1:7.7+23ubuntu2) ... 218s Selecting previously unselected package libice6:arm64. 218s Preparing to unpack .../022-libice6_2%3a1.0.10-1build2_arm64.deb ... 218s Unpacking libice6:arm64 (2:1.0.10-1build2) ... 218s Selecting previously unselected package libjpeg-turbo8:arm64. 218s Preparing to unpack .../023-libjpeg-turbo8_2.1.5-2ubuntu1_arm64.deb ... 218s Unpacking libjpeg-turbo8:arm64 (2.1.5-2ubuntu1) ... 218s Selecting previously unselected package libjpeg8:arm64. 218s Preparing to unpack .../024-libjpeg8_8c-2ubuntu11_arm64.deb ... 218s Unpacking libjpeg8:arm64 (8c-2ubuntu11) ... 219s Selecting previously unselected package libjs-bootstrap. 219s Preparing to unpack .../025-libjs-bootstrap_3.4.1+dfsg-3_all.deb ... 219s Unpacking libjs-bootstrap (3.4.1+dfsg-3) ... 219s Selecting previously unselected package libjs-popper.js. 219s Preparing to unpack .../026-libjs-popper.js_1.16.1+ds-6_all.deb ... 219s Unpacking libjs-popper.js (1.16.1+ds-6) ... 219s Selecting previously unselected package libjs-bootstrap4. 219s Preparing to unpack .../027-libjs-bootstrap4_4.6.1+dfsg1-4_all.deb ... 219s Unpacking libjs-bootstrap4 (4.6.1+dfsg1-4) ... 219s Selecting previously unselected package libjs-d3. 219s Preparing to unpack .../028-libjs-d3_3.5.17-4_all.deb ... 219s Unpacking libjs-d3 (3.5.17-4) ... 219s Selecting previously unselected package libjs-es5-shim. 219s Preparing to unpack .../029-libjs-es5-shim_4.6.7-2_all.deb ... 219s Unpacking libjs-es5-shim (4.6.7-2) ... 219s Selecting previously unselected package libjs-highlight.js. 219s Preparing to unpack .../030-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 219s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 219s Selecting previously unselected package libjs-jquery. 219s Preparing to unpack .../031-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 219s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 219s Selecting previously unselected package libjs-jquery-datatables. 219s Preparing to unpack .../032-libjs-jquery-datatables_1.11.5+dfsg-2_all.deb ... 219s Unpacking libjs-jquery-datatables (1.11.5+dfsg-2) ... 219s Selecting previously unselected package libjs-sifter.js. 219s Preparing to unpack .../033-libjs-sifter.js_0.6.0+dfsg-3_all.deb ... 219s Unpacking libjs-sifter.js (0.6.0+dfsg-3) ... 219s Selecting previously unselected package libjs-microplugin.js. 219s Preparing to unpack .../034-libjs-microplugin.js_0.0.3+dfsg-1.1_all.deb ... 219s Unpacking libjs-microplugin.js (0.0.3+dfsg-1.1) ... 219s Selecting previously unselected package libjs-jquery-selectize.js. 219s Preparing to unpack .../035-libjs-jquery-selectize.js_0.12.6+dfsg-1.1_all.deb ... 219s Unpacking libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 219s Selecting previously unselected package libjs-jquery-ui. 219s Preparing to unpack .../036-libjs-jquery-ui_1.13.2+dfsg-1_all.deb ... 219s Unpacking libjs-jquery-ui (1.13.2+dfsg-1) ... 219s Selecting previously unselected package libjs-json. 219s Preparing to unpack .../037-libjs-json_0~20221030+~1.0.8-1_all.deb ... 219s Unpacking libjs-json (0~20221030+~1.0.8-1) ... 219s Selecting previously unselected package liblapack3:arm64. 219s Preparing to unpack .../038-liblapack3_3.12.0-3_arm64.deb ... 219s Unpacking liblapack3:arm64 (3.12.0-3) ... 219s Selecting previously unselected package liblerc4:arm64. 219s Preparing to unpack .../039-liblerc4_4.0.0+ds-4ubuntu1_arm64.deb ... 219s Unpacking liblerc4:arm64 (4.0.0+ds-4ubuntu1) ... 219s Selecting previously unselected package libthai-data. 219s Preparing to unpack .../040-libthai-data_0.1.29-2_all.deb ... 219s Unpacking libthai-data (0.1.29-2) ... 219s Selecting previously unselected package libthai0:arm64. 219s Preparing to unpack .../041-libthai0_0.1.29-2_arm64.deb ... 219s Unpacking libthai0:arm64 (0.1.29-2) ... 219s Selecting previously unselected package libpango-1.0-0:arm64. 219s Preparing to unpack .../042-libpango-1.0-0_1.51.0+ds-4_arm64.deb ... 219s Unpacking libpango-1.0-0:arm64 (1.51.0+ds-4) ... 219s Selecting previously unselected package libpangoft2-1.0-0:arm64. 219s Preparing to unpack .../043-libpangoft2-1.0-0_1.51.0+ds-4_arm64.deb ... 219s Unpacking libpangoft2-1.0-0:arm64 (1.51.0+ds-4) ... 219s Selecting previously unselected package libpangocairo-1.0-0:arm64. 219s Preparing to unpack .../044-libpangocairo-1.0-0_1.51.0+ds-4_arm64.deb ... 219s Unpacking libpangocairo-1.0-0:arm64 (1.51.0+ds-4) ... 219s Selecting previously unselected package libpaper1:arm64. 219s Preparing to unpack .../045-libpaper1_1.1.29_arm64.deb ... 219s Unpacking libpaper1:arm64 (1.1.29) ... 219s Selecting previously unselected package libpaper-utils. 219s Preparing to unpack .../046-libpaper-utils_1.1.29_arm64.deb ... 219s Unpacking libpaper-utils (1.1.29) ... 219s Selecting previously unselected package libsharpyuv0:arm64. 219s Preparing to unpack .../047-libsharpyuv0_1.3.2-0.4_arm64.deb ... 219s Unpacking libsharpyuv0:arm64 (1.3.2-0.4) ... 219s Selecting previously unselected package libsm6:arm64. 219s Preparing to unpack .../048-libsm6_2%3a1.2.3-1build2_arm64.deb ... 219s Unpacking libsm6:arm64 (2:1.2.3-1build2) ... 219s Selecting previously unselected package libtcl8.6:arm64. 219s Preparing to unpack .../049-libtcl8.6_8.6.13+dfsg-2_arm64.deb ... 219s Unpacking libtcl8.6:arm64 (8.6.13+dfsg-2) ... 220s Selecting previously unselected package libjbig0:arm64. 220s Preparing to unpack .../050-libjbig0_2.1-6.1ubuntu1_arm64.deb ... 220s Unpacking libjbig0:arm64 (2.1-6.1ubuntu1) ... 220s Selecting previously unselected package libwebp7:arm64. 220s Preparing to unpack .../051-libwebp7_1.3.2-0.4_arm64.deb ... 220s Unpacking libwebp7:arm64 (1.3.2-0.4) ... 220s Selecting previously unselected package libtiff6:arm64. 220s Preparing to unpack .../052-libtiff6_4.5.1+git230720-3ubuntu1_arm64.deb ... 220s Unpacking libtiff6:arm64 (4.5.1+git230720-3ubuntu1) ... 220s Selecting previously unselected package libxft2:arm64. 220s Preparing to unpack .../053-libxft2_2.3.6-1_arm64.deb ... 220s Unpacking libxft2:arm64 (2.3.6-1) ... 220s Selecting previously unselected package libxss1:arm64. 220s Preparing to unpack .../054-libxss1_1%3a1.2.3-1build2_arm64.deb ... 220s Unpacking libxss1:arm64 (1:1.2.3-1build2) ... 220s Selecting previously unselected package libtk8.6:arm64. 220s Preparing to unpack .../055-libtk8.6_8.6.13-2_arm64.deb ... 220s Unpacking libtk8.6:arm64 (8.6.13-2) ... 220s Selecting previously unselected package libxt6t64:arm64. 220s Preparing to unpack .../056-libxt6t64_1%3a1.2.1-1.2_arm64.deb ... 220s Unpacking libxt6t64:arm64 (1:1.2.1-1.2) ... 220s Selecting previously unselected package zip. 220s Preparing to unpack .../057-zip_3.0-13_arm64.deb ... 220s Unpacking zip (3.0-13) ... 220s Selecting previously unselected package unzip. 220s Preparing to unpack .../058-unzip_6.0-28ubuntu3_arm64.deb ... 220s Unpacking unzip (6.0-28ubuntu3) ... 220s Selecting previously unselected package xdg-utils. 220s Preparing to unpack .../059-xdg-utils_1.1.3-4.1ubuntu3_all.deb ... 220s Unpacking xdg-utils (1.1.3-4.1ubuntu3) ... 220s Selecting previously unselected package r-base-core. 220s Preparing to unpack .../060-r-base-core_4.3.3-2build1_arm64.deb ... 220s Unpacking r-base-core (4.3.3-2build1) ... 220s Selecting previously unselected package r-cran-littler. 220s Preparing to unpack .../061-r-cran-littler_0.3.19-1_arm64.deb ... 220s Unpacking r-cran-littler (0.3.19-1) ... 220s Selecting previously unselected package littler. 220s Preparing to unpack .../062-littler_0.3.19-1_all.deb ... 220s Unpacking littler (0.3.19-1) ... 220s Selecting previously unselected package node-bootstrap-sass. 220s Preparing to unpack .../063-node-bootstrap-sass_3.4.3-2_all.deb ... 220s Unpacking node-bootstrap-sass (3.4.3-2) ... 220s Selecting previously unselected package node-html5shiv. 220s Preparing to unpack .../064-node-html5shiv_3.7.3+dfsg-5_all.deb ... 220s Unpacking node-html5shiv (3.7.3+dfsg-5) ... 220s Selecting previously unselected package node-normalize.css. 220s Preparing to unpack .../065-node-normalize.css_8.0.1-5_all.deb ... 220s Unpacking node-normalize.css (8.0.1-5) ... 220s Selecting previously unselected package r-cran-base64enc. 220s Preparing to unpack .../066-r-cran-base64enc_0.1-3-3_arm64.deb ... 220s Unpacking r-cran-base64enc (0.1-3-3) ... 220s Selecting previously unselected package r-cran-rlang. 220s Preparing to unpack .../067-r-cran-rlang_1.1.3-1_arm64.deb ... 220s Unpacking r-cran-rlang (1.1.3-1) ... 220s Selecting previously unselected package r-cran-fastmap. 220s Preparing to unpack .../068-r-cran-fastmap_1.1.1-1_arm64.deb ... 220s Unpacking r-cran-fastmap (1.1.1-1) ... 220s Selecting previously unselected package r-cran-cachem. 220s Preparing to unpack .../069-r-cran-cachem_1.0.8-1_arm64.deb ... 220s Unpacking r-cran-cachem (1.0.8-1) ... 221s Selecting previously unselected package r-cran-digest. 221s Preparing to unpack .../070-r-cran-digest_0.6.34-1_arm64.deb ... 221s Unpacking r-cran-digest (0.6.34-1) ... 221s Selecting previously unselected package r-cran-ellipsis. 221s Preparing to unpack .../071-r-cran-ellipsis_0.3.2-2_arm64.deb ... 221s Unpacking r-cran-ellipsis (0.3.2-2) ... 221s Selecting previously unselected package r-cran-htmltools. 221s Preparing to unpack .../072-r-cran-htmltools_0.5.7-1_arm64.deb ... 221s Unpacking r-cran-htmltools (0.5.7-1) ... 221s Selecting previously unselected package r-cran-jquerylib. 221s Preparing to unpack .../073-r-cran-jquerylib_0.1.4+dfsg-4_all.deb ... 221s Unpacking r-cran-jquerylib (0.1.4+dfsg-4) ... 221s Selecting previously unselected package r-cran-jsonlite. 221s Preparing to unpack .../074-r-cran-jsonlite_1.8.8+dfsg-1_arm64.deb ... 221s Unpacking r-cran-jsonlite (1.8.8+dfsg-1) ... 221s Selecting previously unselected package r-cran-cli. 221s Preparing to unpack .../075-r-cran-cli_3.6.2-1_arm64.deb ... 221s Unpacking r-cran-cli (3.6.2-1) ... 221s Selecting previously unselected package r-cran-glue. 221s Preparing to unpack .../076-r-cran-glue_1.7.0-1_arm64.deb ... 221s Unpacking r-cran-glue (1.7.0-1) ... 221s Selecting previously unselected package r-cran-lifecycle. 221s Preparing to unpack .../077-r-cran-lifecycle_1.0.4+dfsg-1_all.deb ... 221s Unpacking r-cran-lifecycle (1.0.4+dfsg-1) ... 221s Selecting previously unselected package r-cran-memoise. 221s Preparing to unpack .../078-r-cran-memoise_2.0.1-1_all.deb ... 221s Unpacking r-cran-memoise (2.0.1-1) ... 221s Selecting previously unselected package r-cran-mime. 221s Preparing to unpack .../079-r-cran-mime_0.12-1_arm64.deb ... 221s Unpacking r-cran-mime (0.12-1) ... 221s Selecting previously unselected package r-cran-fs. 221s Preparing to unpack .../080-r-cran-fs_1.6.3+dfsg-1_arm64.deb ... 221s Unpacking r-cran-fs (1.6.3+dfsg-1) ... 221s Selecting previously unselected package r-cran-r6. 221s Preparing to unpack .../081-r-cran-r6_2.5.1-1_all.deb ... 221s Unpacking r-cran-r6 (2.5.1-1) ... 221s Selecting previously unselected package r-cran-rappdirs. 221s Preparing to unpack .../082-r-cran-rappdirs_0.3.3-1_arm64.deb ... 221s Unpacking r-cran-rappdirs (0.3.3-1) ... 221s Selecting previously unselected package r-cran-sass. 221s Preparing to unpack .../083-r-cran-sass_0.4.8+dfsg-1_arm64.deb ... 221s Unpacking r-cran-sass (0.4.8+dfsg-1) ... 221s Selecting previously unselected package r-cran-bslib. 221s Preparing to unpack .../084-r-cran-bslib_0.6.1+dfsg-1_all.deb ... 221s Unpacking r-cran-bslib (0.6.1+dfsg-1) ... 222s Selecting previously unselected package r-cran-codetools. 222s Preparing to unpack .../085-r-cran-codetools_0.2-19-1_all.deb ... 222s Unpacking r-cran-codetools (0.2-19-1) ... 222s Selecting previously unselected package r-cran-commonmark. 222s Preparing to unpack .../086-r-cran-commonmark_1.9.1-1_arm64.deb ... 222s Unpacking r-cran-commonmark (1.9.1-1) ... 222s Selecting previously unselected package r-cran-crayon. 222s Preparing to unpack .../087-r-cran-crayon_1.5.2-1_all.deb ... 222s Unpacking r-cran-crayon (1.5.2-1) ... 222s Selecting previously unselected package r-cran-fontawesome. 222s Preparing to unpack .../088-r-cran-fontawesome_0.5.2-1_all.deb ... 222s Unpacking r-cran-fontawesome (0.5.2-1) ... 222s Selecting previously unselected package r-cran-globals. 222s Preparing to unpack .../089-r-cran-globals_0.16.2-1_all.deb ... 222s Unpacking r-cran-globals (0.16.2-1) ... 222s Selecting previously unselected package r-cran-listenv. 222s Preparing to unpack .../090-r-cran-listenv_0.9.1+dfsg-1_all.deb ... 222s Unpacking r-cran-listenv (0.9.1+dfsg-1) ... 222s Selecting previously unselected package r-cran-parallelly. 222s Preparing to unpack .../091-r-cran-parallelly_1.37.1-1_arm64.deb ... 222s Unpacking r-cran-parallelly (1.37.1-1) ... 222s Selecting previously unselected package r-cran-future. 222s Preparing to unpack .../092-r-cran-future_1.33.1+dfsg-1_all.deb ... 222s Unpacking r-cran-future (1.33.1+dfsg-1) ... 222s Selecting previously unselected package r-cran-future.apply. 222s Preparing to unpack .../093-r-cran-future.apply_1.11.1+dfsg-1_all.deb ... 222s Unpacking r-cran-future.apply (1.11.1+dfsg-1) ... 222s Selecting previously unselected package r-cran-pkgkitten. 222s Preparing to unpack .../094-r-cran-pkgkitten_0.2.3-1_all.deb ... 222s Unpacking r-cran-pkgkitten (0.2.3-1) ... 222s Selecting previously unselected package r-cran-rcpp. 222s Preparing to unpack .../095-r-cran-rcpp_1.0.12-1_arm64.deb ... 222s Unpacking r-cran-rcpp (1.0.12-1) ... 222s Selecting previously unselected package r-cran-later. 222s Preparing to unpack .../096-r-cran-later_1.3.2+dfsg-1_arm64.deb ... 222s Unpacking r-cran-later (1.3.2+dfsg-1) ... 222s Selecting previously unselected package r-cran-magrittr. 222s Preparing to unpack .../097-r-cran-magrittr_2.0.3-1_arm64.deb ... 222s Unpacking r-cran-magrittr (2.0.3-1) ... 222s Selecting previously unselected package r-cran-promises. 222s Preparing to unpack .../098-r-cran-promises_1.2.1+dfsg-1_arm64.deb ... 222s Unpacking r-cran-promises (1.2.1+dfsg-1) ... 222s Selecting previously unselected package r-cran-httpuv. 222s Preparing to unpack .../099-r-cran-httpuv_1.6.14+dfsg-1_arm64.deb ... 222s Unpacking r-cran-httpuv (1.6.14+dfsg-1) ... 222s Selecting previously unselected package r-cran-pbapply. 222s Preparing to unpack .../100-r-cran-pbapply_1.7-2-1_all.deb ... 222s Unpacking r-cran-pbapply (1.7-2-1) ... 222s Selecting previously unselected package r-cran-xtable. 222s Preparing to unpack .../101-r-cran-xtable_1%3a1.8-4-2_all.deb ... 222s Unpacking r-cran-xtable (1:1.8-4-2) ... 222s Selecting previously unselected package r-cran-sourcetools. 222s Preparing to unpack .../102-r-cran-sourcetools_0.1.7-1-1_arm64.deb ... 222s Unpacking r-cran-sourcetools (0.1.7-1-1) ... 222s Selecting previously unselected package r-cran-withr. 222s Preparing to unpack .../103-r-cran-withr_2.5.0-1_all.deb ... 222s Unpacking r-cran-withr (2.5.0-1) ... 222s Selecting previously unselected package libjs-twitter-bootstrap-datepicker. 222s Preparing to unpack .../104-libjs-twitter-bootstrap-datepicker_1.3.1+dfsg1-4.1_all.deb ... 222s Unpacking libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 223s Selecting previously unselected package r-cran-shiny. 223s Preparing to unpack .../105-r-cran-shiny_1.8.0+dfsg-1_all.deb ... 223s Unpacking r-cran-shiny (1.8.0+dfsg-1) ... 223s Selecting previously unselected package autopkgtest-satdep. 223s Preparing to unpack .../106-1-autopkgtest-satdep.deb ... 223s Unpacking autopkgtest-satdep (0) ... 223s Setting up libjs-json (0~20221030+~1.0.8-1) ... 223s Setting up javascript-common (11+nmu1) ... 223s Setting up libgraphite2-3:arm64 (1.3.14-2) ... 223s Setting up libpixman-1-0:arm64 (0.42.2-1) ... 223s Setting up libsharpyuv0:arm64 (1.3.2-0.4) ... 223s Setting up libpaper1:arm64 (1.1.29) ... 223s 223s Creating config file /etc/papersize with new version 223s Setting up liblerc4:arm64 (4.0.0+ds-4ubuntu1) ... 223s Setting up libxrender1:arm64 (1:0.9.10-1.1) ... 223s Setting up libdatrie1:arm64 (0.2.13-3) ... 223s Setting up libjs-popper.js (1.16.1+ds-6) ... 223s Setting up libtirpc3t64:arm64 (1.3.4+ds-1.1) ... 223s Setting up libxcb-render0:arm64 (1.15-1) ... 223s Setting up libjs-sifter.js (0.6.0+dfsg-3) ... 223s Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 223s Setting up unzip (6.0-28ubuntu3) ... 223s Setting up x11-common (1:7.7+23ubuntu2) ... 224s Setting up node-html5shiv (3.7.3+dfsg-5) ... 224s Setting up libpsl5t64:arm64 (0.21.2-1.1) ... 224s Setting up libdeflate0:arm64 (1.19-1) ... 224s Setting up libjs-microplugin.js (0.0.3+dfsg-1.1) ... 224s Setting up libxcb-shm0:arm64 (1.15-1) ... 224s Setting up libpaper-utils (1.1.29) ... 224s Setting up libgomp1:arm64 (14-20240303-1ubuntu1) ... 224s Setting up libjbig0:arm64 (2.1-6.1ubuntu1) ... 224s Setting up libjs-es5-shim (4.6.7-2) ... 224s Setting up zip (3.0-13) ... 224s Setting up libblas3:arm64 (3.12.0-3) ... 224s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode 224s Setting up libjs-d3 (3.5.17-4) ... 224s Setting up fonts-dejavu-mono (2.37-8) ... 224s Setting up libpng16-16t64:arm64 (1.6.43-3) ... 224s Setting up libtcl8.6:arm64 (8.6.13+dfsg-2) ... 224s Setting up fonts-dejavu-core (2.37-8) ... 224s Setting up libjpeg-turbo8:arm64 (2.1.5-2ubuntu1) ... 224s Setting up libgfortran5:arm64 (14-20240303-1ubuntu1) ... 224s Setting up libwebp7:arm64 (1.3.2-0.4) ... 224s Setting up libreadline8t64:arm64 (8.2-3.1) ... 224s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 224s Setting up libharfbuzz0b:arm64 (8.3.0-2) ... 224s Setting up libthai-data (0.1.29-2) ... 224s Setting up node-bootstrap-sass (3.4.3-2) ... 224s Setting up libxss1:arm64 (1:1.2.3-1build2) ... 224s Setting up libjs-bootstrap4 (4.6.1+dfsg1-4) ... 224s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 224s Setting up node-normalize.css (8.0.1-5) ... 224s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 224s Setting up xdg-utils (1.1.3-4.1ubuntu3) ... 224s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 224s Setting up libjs-bootstrap (3.4.1+dfsg-3) ... 224s Setting up libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 224s Setting up libjpeg8:arm64 (8c-2ubuntu11) ... 224s Setting up libice6:arm64 (2:1.0.10-1build2) ... 224s Setting up liblapack3:arm64 (3.12.0-3) ... 224s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode 224s Setting up libcurl4t64:arm64 (8.5.0-2ubuntu7) ... 224s Setting up fontconfig-config (2.15.0-1ubuntu1) ... 224s Setting up libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 224s Setting up libjs-jquery-datatables (1.11.5+dfsg-2) ... 224s Setting up libthai0:arm64 (0.1.29-2) ... 224s Setting up libjs-jquery-ui (1.13.2+dfsg-1) ... 224s Setting up libtiff6:arm64 (4.5.1+git230720-3ubuntu1) ... 224s Setting up curl (8.5.0-2ubuntu7) ... 224s Setting up libfontconfig1:arm64 (2.15.0-1ubuntu1) ... 224s Setting up libsm6:arm64 (2:1.2.3-1build2) ... 224s Setting up fontconfig (2.15.0-1ubuntu1) ... 226s Regenerating fonts cache... done. 226s Setting up libxft2:arm64 (2.3.6-1) ... 226s Setting up libtk8.6:arm64 (8.6.13-2) ... 226s Setting up libpango-1.0-0:arm64 (1.51.0+ds-4) ... 226s Setting up libcairo2:arm64 (1.18.0-1) ... 226s Setting up libxt6t64:arm64 (1:1.2.1-1.2) ... 226s Setting up libpangoft2-1.0-0:arm64 (1.51.0+ds-4) ... 226s Setting up libpangocairo-1.0-0:arm64 (1.51.0+ds-4) ... 226s Setting up r-base-core (4.3.3-2build1) ... 226s 226s Creating config file /etc/R/Renviron with new version 226s Setting up r-cran-crayon (1.5.2-1) ... 226s Setting up r-cran-sourcetools (0.1.7-1-1) ... 226s Setting up r-cran-pbapply (1.7-2-1) ... 226s Setting up r-cran-commonmark (1.9.1-1) ... 226s Setting up r-cran-r6 (2.5.1-1) ... 226s Setting up r-cran-pkgkitten (0.2.3-1) ... 226s Setting up r-cran-magrittr (2.0.3-1) ... 226s Setting up r-cran-rappdirs (0.3.3-1) ... 226s Setting up r-cran-littler (0.3.19-1) ... 226s Setting up r-cran-fs (1.6.3+dfsg-1) ... 226s Setting up r-cran-rcpp (1.0.12-1) ... 226s Setting up r-cran-codetools (0.2-19-1) ... 226s Setting up r-cran-rlang (1.1.3-1) ... 226s Setting up r-cran-listenv (0.9.1+dfsg-1) ... 226s Setting up littler (0.3.19-1) ... 226s Setting up r-cran-withr (2.5.0-1) ... 226s Setting up r-cran-mime (0.12-1) ... 226s Setting up r-cran-base64enc (0.1-3-3) ... 226s Setting up r-cran-digest (0.6.34-1) ... 226s Setting up r-cran-glue (1.7.0-1) ... 226s Setting up r-cran-xtable (1:1.8-4-2) ... 226s Setting up r-cran-cli (3.6.2-1) ... 226s Setting up r-cran-lifecycle (1.0.4+dfsg-1) ... 226s Setting up r-cran-fastmap (1.1.1-1) ... 226s Setting up r-cran-jsonlite (1.8.8+dfsg-1) ... 226s Setting up r-cran-parallelly (1.37.1-1) ... 226s Setting up r-cran-later (1.3.2+dfsg-1) ... 226s Setting up r-cran-cachem (1.0.8-1) ... 226s Setting up r-cran-globals (0.16.2-1) ... 226s Setting up r-cran-ellipsis (0.3.2-2) ... 226s Setting up r-cran-future (1.33.1+dfsg-1) ... 226s Setting up r-cran-future.apply (1.11.1+dfsg-1) ... 226s Setting up r-cran-memoise (2.0.1-1) ... 226s Setting up r-cran-promises (1.2.1+dfsg-1) ... 226s Setting up r-cran-htmltools (0.5.7-1) ... 226s Setting up r-cran-sass (0.4.8+dfsg-1) ... 226s Setting up r-cran-httpuv (1.6.14+dfsg-1) ... 226s Setting up r-cran-fontawesome (0.5.2-1) ... 226s Setting up r-cran-jquerylib (0.1.4+dfsg-4) ... 226s Setting up r-cran-bslib (0.6.1+dfsg-1) ... 226s Setting up r-cran-shiny (1.8.0+dfsg-1) ... 226s Setting up autopkgtest-satdep (0) ... 226s Processing triggers for man-db (2.12.0-3) ... 227s Processing triggers for install-info (7.1-3) ... 227s Processing triggers for libc-bin (2.39-0ubuntu2) ... 234s (Reading database ... 82494 files and directories currently installed.) 235s Removing autopkgtest-satdep (0) ... 235s autopkgtest [19:29:13]: test run-unit-test: [----------------------- 236s BEGIN TEST tests.R 236s 236s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 236s Copyright (C) 2024 The R Foundation for Statistical Computing 236s Platform: aarch64-unknown-linux-gnu (64-bit) 236s 236s R is free software and comes with ABSOLUTELY NO WARRANTY. 236s You are welcome to redistribute it under certain conditions. 236s Type 'license()' or 'licence()' for distribution details. 236s 236s R is a collaborative project with many contributors. 236s Type 'contributors()' for more information and 236s 'citation()' on how to cite R or R packages in publications. 236s 236s Type 'demo()' for some demos, 'help()' for on-line help, or 236s 'help.start()' for an HTML browser interface to help. 236s Type 'q()' to quit R. 236s 236s > #devtools::install_github("psolymos/pbapply") 236s > 236s > ## --- standard examples --- 236s > 236s > library(pbapply) 236s > 236s > example(apply) 236s 236s apply> ## Compute row and column sums for a matrix: 236s apply> x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 236s 236s apply> dimnames(x)[[1]] <- letters[1:8] 236s 236s apply> apply(x, 2, mean, trim = .2) 236s x1 x2 236s 3 3 236s 236s apply> col.sums <- apply(x, 2, sum) 236s 236s apply> row.sums <- apply(x, 1, sum) 236s 236s apply> rbind(cbind(x, Rtot = row.sums), Ctot = c(col.sums, sum(col.sums))) 236s x1 x2 Rtot 236s a 3 4 7 236s b 3 3 6 236s c 3 2 5 236s d 3 1 4 236s e 3 2 5 236s f 3 3 6 236s g 3 4 7 236s h 3 5 8 236s Ctot 24 24 48 236s 236s apply> stopifnot( apply(x, 2, is.vector)) 236s 236s apply> ## Sort the columns of a matrix 236s apply> apply(x, 2, sort) 236s x1 x2 236s [1,] 3 1 236s [2,] 3 2 236s [3,] 3 2 236s [4,] 3 3 236s [5,] 3 3 236s [6,] 3 4 236s [7,] 3 4 236s [8,] 3 5 236s 236s apply> ## keeping named dimnames 236s apply> names(dimnames(x)) <- c("row", "col") 236s 236s apply> x3 <- array(x, dim = c(dim(x),3), 236s apply+ dimnames = c(dimnames(x), list(C = paste0("cop.",1:3)))) 236s 236s apply> identical(x, apply( x, 2, identity)) 236s [1] TRUE 236s 236s apply> identical(x3, apply(x3, 2:3, identity)) 236s [1] TRUE 236s 236s apply> ## Don't show: 236s apply> xN <- x; dimnames(xN) <- list(row=NULL, col=NULL) 236s 236s apply> x2 <- x; names(dimnames(x2)) <- NULL 236s 236s apply> fXY <- function(u) c(X=u[1], Y=u[2]) 236s 236s apply> ax1 <- apply(x, 1, fXY) 236s 236s apply> ax2 <- apply(x2,1, fXY) 236s 236s apply> stopifnot(identical(dimnames(ax1), list(col=c("X.x1", "Y.x2"), row=letters[1:8])), 236s apply+ identical(dimnames(ax2), unname(dimnames(ax1))), 236s apply+ identical( x, apply( x, 2, identity)), 236s apply+ identical(xN, apply(xN, 2, identity)), 236s apply+ identical(dimnames(x), 236s apply+ dimnames(apply(x, 2, format))), 236s apply+ identical(x3, apply(x3, 2:3, identity)), 236s apply+ identical(dimnames(apply(x3, 2:1, identity)), 236s apply+ dimnames(x3)[3:1])) 236s 236s apply> rm(xN, x2, fXY, ax1, ax2) 236s 236s apply> ## End(Don't show) 236s apply> ##- function with extra args: 236s apply> cave <- function(x, c1, c2) c(mean(x[c1]), mean(x[c2])) 236s 236s apply> apply(x, 1, cave, c1 = "x1", c2 = c("x1","x2")) 236s row 236s a b c d e f g h 236s [1,] 3.0 3 3.0 3 3.0 3 3.0 3 236s [2,] 3.5 3 2.5 2 2.5 3 3.5 4 236s 236s apply> ma <- matrix(c(1:4, 1, 6:8), nrow = 2) 236s 236s apply> ma 236s [,1] [,2] [,3] [,4] 236s [1,] 1 3 1 7 236s [2,] 2 4 6 8 236s 236s apply> apply(ma, 1, table) #--> a list of length 2 236s [[1]] 236s 236s 1 3 7 236s 2 1 1 236s 236s [[2]] 236s 236s 2 4 6 8 236s 1 1 1 1 236s 236s 236s apply> apply(ma, 1, stats::quantile) # 5 x n matrix with rownames 236s [,1] [,2] 236s 0% 1 2.0 236s 25% 1 3.5 236s 50% 2 5.0 236s 75% 4 6.5 236s 100% 7 8.0 236s 236s apply> stopifnot(dim(ma) == dim(apply(ma, 1:2, sum))) 236s 236s apply> ## Example with different lengths for each call 236s apply> z <- array(1:24, dim = 2:4) 236s 236s apply> zseq <- apply(z, 1:2, function(x) seq_len(max(x))) 236s 236s apply> zseq ## a 2 x 3 matrix 236s [,1] [,2] [,3] 236s [1,] integer,19 integer,21 integer,23 236s [2,] integer,20 integer,22 integer,24 236s 236s apply> typeof(zseq) ## list 236s [1] "list" 236s 236s apply> dim(zseq) ## 2 3 236s [1] 2 3 236s 236s apply> zseq[1,] 236s [[1]] 236s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 236s 236s [[2]] 236s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 236s 236s [[3]] 236s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 236s 236s 236s apply> apply(z, 3, function(x) seq_len(max(x))) 236s [[1]] 236s [1] 1 2 3 4 5 6 236s 236s [[2]] 236s [1] 1 2 3 4 5 6 7 8 9 10 11 12 236s 236s [[3]] 236s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 236s 236s [[4]] 236s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 236s 236s 236s apply> # a list without a dim attribute 236s apply> 236s apply> 236s apply> 236s > example(lapply) 236s 236s lapply> require(stats); require(graphics) 236s 236s lapply> x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE)) 236s 236s lapply> # compute the list mean for each list element 236s lapply> lapply(x, mean) 236s $a 236s [1] 5.5 236s 236s $beta 236s [1] 4.535125 236s 236s $logic 236s [1] 0.5 236s 236s 236s lapply> # median and quartiles for each list element 236s lapply> lapply(x, quantile, probs = 1:3/4) 236s $a 236s 25% 50% 75% 236s 3.25 5.50 7.75 236s 236s $beta 236s 25% 50% 75% 236s 0.2516074 1.0000000 5.0536690 236s 236s $logic 236s 25% 50% 75% 236s 0.0 0.5 1.0 236s 236s 236s lapply> sapply(x, quantile) 236s a beta logic 236s 0% 1.00 0.04978707 0.0 236s 25% 3.25 0.25160736 0.0 236s 50% 5.50 1.00000000 0.5 236s 75% 7.75 5.05366896 1.0 236s 100% 10.00 20.08553692 1.0 236s 236s lapply> i39 <- sapply(3:9, seq) # list of vectors 236s 236s lapply> sapply(i39, fivenum) 236s [,1] [,2] [,3] [,4] [,5] [,6] [,7] 236s [1,] 1.0 1.0 1 1.0 1.0 1.0 1 236s [2,] 1.5 1.5 2 2.0 2.5 2.5 3 236s [3,] 2.0 2.5 3 3.5 4.0 4.5 5 236s [4,] 2.5 3.5 4 5.0 5.5 6.5 7 236s [5,] 3.0 4.0 5 6.0 7.0 8.0 9 236s 236s lapply> vapply(i39, fivenum, 236s lapply+ c(Min. = 0, "1st Qu." = 0, Median = 0, "3rd Qu." = 0, Max. = 0)) 236s [,1] [,2] [,3] [,4] [,5] [,6] [,7] 236s Min. 1.0 1.0 1 1.0 1.0 1.0 1 236s 1st Qu. 1.5 1.5 2 2.0 2.5 2.5 3 236s Median 2.0 2.5 3 3.5 4.0 4.5 5 236s 3rd Qu. 2.5 3.5 4 5.0 5.5 6.5 7 236s Max. 3.0 4.0 5 6.0 7.0 8.0 9 236s 236s lapply> ## sapply(*, "array") -- artificial example 236s lapply> (v <- structure(10*(5:8), names = LETTERS[1:4])) 236s A B C D 236s 50 60 70 80 236s 236s lapply> f2 <- function(x, y) outer(rep(x, length.out = 3), y) 236s 236s lapply> (a2 <- sapply(v, f2, y = 2*(1:5), simplify = "array")) 236s , , A 236s 236s [,1] [,2] [,3] [,4] [,5] 236s [1,] 100 200 300 400 500 236s [2,] 100 200 300 400 500 236s [3,] 100 200 300 400 500 236s 236s , , B 236s 236s [,1] [,2] [,3] [,4] [,5] 236s [1,] 120 240 360 480 600 236s [2,] 120 240 360 480 600 236s [3,] 120 240 360 480 600 236s 236s , , C 236s 236s [,1] [,2] [,3] [,4] [,5] 236s [1,] 140 280 420 560 700 236s [2,] 140 280 420 560 700 236s [3,] 140 280 420 560 700 236s 236s , , D 236s 236s [,1] [,2] [,3] [,4] [,5] 236s [1,] 160 320 480 640 800 236s [2,] 160 320 480 640 800 236s [3,] 160 320 480 640 800 236s 236s 236s lapply> a.2 <- vapply(v, f2, outer(1:3, 1:5), y = 2*(1:5)) 236s 236s lapply> stopifnot(dim(a2) == c(3,5,4), all.equal(a2, a.2), 236s lapply+ identical(dimnames(a2), list(NULL,NULL,LETTERS[1:4]))) 236s 236s lapply> hist(replicate(100, mean(rexp(10)))) 236s 236s lapply> ## use of replicate() with parameters: 236s lapply> foo <- function(x = 1, y = 2) c(x, y) 236s 236s lapply> # does not work: bar <- function(n, ...) replicate(n, foo(...)) 236s lapply> bar <- function(n, x) replicate(n, foo(x = x)) 236s 236s lapply> bar(5, x = 3) 236s [,1] [,2] [,3] [,4] [,5] 236s [1,] 3 3 3 3 3 236s [2,] 2 2 2 2 2 236s > 236s > ## run examples without progress bar 236s > pboptions(type = "none") 236s > example(splitpb, run.dontrun = TRUE) 236s 236s spltpb> ## define 1 job / worker at a time and repeat 236s spltpb> splitpb(10, 4) 236s [[1]] 236s [1] 1 2 3 4 236s 236s [[2]] 236s [1] 5 6 7 8 236s 236s [[3]] 236s [1] 9 10 236s 236s 236s spltpb> ## compare this to the no-progress-bar split 236s spltpb> ## that defines all the jubs / worker up front 236s spltpb> parallel::splitIndices(10, 4) 236s [[1]] 236s [1] 1 2 3 236s 236s [[2]] 236s [1] 4 5 236s 236s [[3]] 236s [1] 6 7 236s 236s [[4]] 236s [1] 8 9 10 236s 236s 236s spltpb> ## cap the length of the output 236s spltpb> splitpb(20, 2, nout = NULL) 236s [[1]] 236s [1] 1 2 236s 236s [[2]] 236s [1] 3 4 236s 236s [[3]] 236s [1] 5 6 236s 236s [[4]] 236s [1] 7 8 236s 236s [[5]] 236s [1] 9 10 236s 236s [[6]] 236s [1] 11 12 236s 236s [[7]] 236s [1] 13 14 236s 236s [[8]] 236s [1] 15 16 236s 236s [[9]] 236s [1] 17 18 236s 236s [[10]] 236s [1] 19 20 236s 236s 236s spltpb> splitpb(20, 2, nout = 5) 236s [[1]] 236s [1] 1 2 3 4 236s 236s [[2]] 236s [1] 5 6 7 8 236s 236s [[3]] 236s [1] 9 10 11 12 236s 236s [[4]] 236s [1] 13 14 15 16 236s 236s [[5]] 236s [1] 17 18 19 20 236s 236s > example(timerProgressBar, run.dontrun = TRUE) 236s 236s tmrPrB> ## increase sluggishness to admire the progress bar longer 236s tmrPrB> sluggishness <- 0.02 236s 236s tmrPrB> test_fun <- function(...) 236s tmrPrB+ { 236s tmrPrB+ pb <- timerProgressBar(...) 236s tmrPrB+ on.exit(close(pb)) 236s tmrPrB+ for (i in seq(0, 1, 0.05)) { 236s tmrPrB+ Sys.sleep(sluggishness) 236s tmrPrB+ setTimerProgressBar(pb, i) 236s tmrPrB+ } 236s tmrPrB+ invisible(NULL) 236s tmrPrB+ } 236s 236s tmrPrB> ## check the different styles 236s tmrPrB> test_fun(width = 35, char = "+", style = 1) 237s | | 0 % elapsed=00s | | 0 % elapsed=00s |++ | 5 % elapsed=00s, remaining~01s |++++ | 10% elapsed=00s, remaining~01s |++++++ | 15% elapsed=00s, remaining~00s |+++++++ | 20% elapsed=00s, remaining~00s |+++++++++ | 25% elapsed=00s, remaining~00s |+++++++++++ | 30% elapsed=00s, remaining~00s |+++++++++++++ | 35% elapsed=00s, remaining~00s |++++++++++++++ | 40% elapsed=00s, remaining~00s |++++++++++++++++ | 45% elapsed=00s, remaining~00s |++++++++++++++++++ | 50% elapsed=00s, remaining~00s |++++++++++++++++++++ | 55% elapsed=00s, remaining~00s |++++++++++++++++++++++ | 60% elapsed=00s, remaining~00s |+++++++++++++++++++++++ | 65% elapsed=00s, remaining~00s |+++++++++++++++++++++++++ | 70% elapsed=00s, remaining~00s |+++++++++++++++++++++++++++ | 75% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++ | 80% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++++ | 85% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++++++ | 90% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++++++++ | 95% elapsed=00s, remaining~00s |+++++++++++++++++++++++++++++++++++| 100% elapsed=00s, remaining~00s 237s 237s tmrPrB> test_fun(style = 2) 237s / 0 % elapsed=00s / 0 % elapsed=00s - 5 % elapsed=00s, remaining~01s \ 10% elapsed=00s, remaining~01s | 15% elapsed=00s, remaining~00s / 20% elapsed=00s, remaining~00s - 25% elapsed=00s, remaining~00s \ 30% elapsed=00s, remaining~00s | 35% elapsed=00s, remaining~00s / 40% elapsed=00s, remaining~00s - 45% elapsed=00s, remaining~00s \ 50% elapsed=00s, remaining~00s | 55% elapsed=00s, remaining~00s / 60% elapsed=00s, remaining~00s - 65% elapsed=00s, remaining~00s \ 70% elapsed=00s, remaining~00s | 75% elapsed=00s, remaining~00s / 80% elapsed=00s, remaining~00s - 85% elapsed=00s, remaining~00s \ 90% elapsed=00s, remaining~00s | 95% elapsed=00s, remaining~00s / 100% elapsed=00s, remaining~00s 237s 237s tmrPrB> test_fun(width = 50, char = ".", style = 3) 238s | | 0 % ~calculating | | 0 % ~calculating |... | 5 % ~01s |..... | 10% ~01s |........ | 15% ~00s |.......... | 20% ~00s |............. | 25% ~00s |................ | 30% ~00s |.................. | 35% ~00s |.................... | 40% ~00s |....................... | 45% ~00s |......................... | 50% ~00s |............................ | 55% ~00s |............................... | 60% ~00s |................................. | 65% ~00s |................................... | 70% ~00s |...................................... | 75% ~00s |........................................ | 80% ~00s |........................................... | 85% ~00s |............................................. | 90% ~00s |................................................ | 95% ~00s |..................................................| 100% elapsed=00s 238s 238s tmrPrB> test_fun(style = 4) 238s / 0 % ~calculating / 0 % ~calculating - 5 % ~01s \ 10% ~01s | 15% ~00s / 20% ~00s - 25% ~00s \ 30% ~00s | 35% ~00s / 40% ~00s - 45% ~00s \ 50% ~00s | 55% ~00s / 60% ~00s - 65% ~00s \ 70% ~00s | 75% ~00s / 80% ~00s - 85% ~00s \ 90% ~00s | 95% ~00s / 100% elapsed=00s 238s 238s tmrPrB> test_fun(width = 35, char = "[=-]", style = 5) 238s [-----------------------------------] 0 % elapsed=00s [-----------------------------------] 0 % elapsed=00s [==---------------------------------] 5 % elapsed=00s, remaining~01s [====-------------------------------] 10% elapsed=00s, remaining~01s [======-----------------------------] 15% elapsed=00s, remaining~00s [=======----------------------------] 20% elapsed=00s, remaining~00s [=========--------------------------] 25% elapsed=00s, remaining~00s [===========------------------------] 30% elapsed=00s, remaining~00s [=============----------------------] 35% elapsed=00s, remaining~00s [==============---------------------] 40% elapsed=00s, remaining~00s [================-------------------] 45% elapsed=00s, remaining~00s [==================-----------------] 50% elapsed=00s, remaining~00s [====================---------------] 55% elapsed=00s, remaining~00s [======================-------------] 60% elapsed=00s, remaining~00s [=======================------------] 65% elapsed=00s, remaining~00s [=========================----------] 70% elapsed=00s, remaining~00s [===========================--------] 75% elapsed=00s, remaining~00s [============================-------] 80% elapsed=00s, remaining~00s [==============================-----] 85% elapsed=00s, remaining~00s [================================---] 90% elapsed=00s, remaining~00s [==================================-] 95% elapsed=00s, remaining~00s [===================================] 100% elapsed=00s, remaining~00s 238s 238s tmrPrB> test_fun(width = 50, char = "{*.}", style = 6) 239s {..................................................} 0 % ~calculating {..................................................} 0 % ~calculating {***...............................................} 5 % ~01s {*****.............................................} 10% ~01s {********..........................................} 15% ~00s {**********........................................} 20% ~00s {*************.....................................} 25% ~00s {****************..................................} 30% ~00s {******************................................} 35% ~00s {********************..............................} 40% ~00s {***********************...........................} 45% ~00s {*************************.........................} 50% ~00s {****************************......................} 55% ~00s {*******************************...................} 60% ~00s {*********************************.................} 65% ~00s {***********************************...............} 70% ~00s {**************************************............} 75% ~00s {****************************************..........} 80% ~00s {*******************************************.......} 85% ~00s {*********************************************.....} 90% ~00s {************************************************..} 95% ~00s {**************************************************} 100% elapsed=00s 239s 239s tmrPrB> ## no bar only percent and elapsed 239s tmrPrB> test_fun(width = 0, char = " ", style = 6) 239s 0 % ~calculating 0 % ~calculating 5 % ~01s 10% ~01s 15% ~00s 20% ~00s 25% ~00s 30% ~00s 35% ~00s 40% ~00s 45% ~00s 50% ~00s 55% ~00s 60% ~00s 65% ~00s 70% ~00s 75% ~00s 80% ~00s 85% ~00s 90% ~00s 95% ~00s 100% elapsed=00s 239s 239s tmrPrB> ## this should produce a progress bar based on min_time 239s tmrPrB> (elapsed <- system.time(test_fun(width = 35, min_time = 0))["elapsed"]) 240s | | 0 % elapsed=00s | | 0 % elapsed=00s |== | 5 % elapsed=00s, remaining~01s |==== | 10% elapsed=00s, remaining~01s |====== | 15% elapsed=00s, remaining~01s |======= | 20% elapsed=00s, remaining~00s |========= | 25% elapsed=00s, remaining~00s |=========== | 30% elapsed=00s, remaining~00s |============= | 35% elapsed=00s, remaining~00s |============== | 40% elapsed=00s, remaining~00s |================ | 45% elapsed=00s, remaining~00s |================== | 50% elapsed=00s, remaining~00s |==================== | 55% elapsed=00s, remaining~00s |====================== | 60% elapsed=00s, remaining~00s |======================= | 65% elapsed=00s, remaining~00s |========================= | 70% elapsed=00s, remaining~00s |=========================== | 75% elapsed=00s, remaining~00s |============================ | 80% elapsed=00s, remaining~00s |============================== | 85% elapsed=00s, remaining~00s |================================ | 90% elapsed=00s, remaining~00s |================================== | 95% elapsed=00s, remaining~00s |===================================| 100% elapsed=00s, remaining~00s 240s elapsed 240s 0.449 240s 240s tmrPrB> ## this should not produce a progress bar based on min_time 240s tmrPrB> system.time(test_fun(min_time = 2 * elapsed))["elapsed"] 240s elapsed 240s 0.423 240s 240s tmrPrB> ## time formatting 240s tmrPrB> getTimeAsString(NULL) 240s [1] "calculating" 240s 240s tmrPrB> getTimeAsString(15) 240s [1] "15s" 240s 240s tmrPrB> getTimeAsString(65) 240s [1] "01m 05s" 240s 240s tmrPrB> getTimeAsString(6005) 240s [1] "01h 40m 05s" 240s 240s tmrPrB> ## example usage of getTimeAsString, use sluggishness <- 1 240s tmrPrB> n <- 10 240s 240s tmrPrB> t0 <- proc.time()[3] 240s 240s tmrPrB> ETA <- NULL 240s 240s tmrPrB> for (i in seq_len(n)) { 240s tmrPrB+ cat(i, "/", n, "- ETA:", getTimeAsString(ETA)) 240s tmrPrB+ flush.console() 240s tmrPrB+ Sys.sleep(sluggishness) 240s tmrPrB+ dt <- proc.time()[3] - t0 240s tmrPrB+ cat(" - elapsed:", getTimeAsString(dt), "\n") 240s tmrPrB+ ETA <- (n - i) * dt / i 240s tmrPrB+ } 240s 1 / 10 - ETA: calculating - elapsed: 00s 240s 2 / 10 - ETA: 00s - elapsed: 00s 240s 3 / 10 - ETA: 00s - elapsed: 00s 240s 4 / 10 - ETA: 00s - elapsed: 00s 240s 5 / 10 - ETA: 00s - elapsed: 00s 240s 6 / 10 - ETA: 00s - elapsed: 00s 240s 7 / 10 - ETA: 00s - elapsed: 00s 240s 8 / 10 - ETA: 00s - elapsed: 00s 240s 9 / 10 - ETA: 00s - elapsed: 00s 240s 10 / 10 - ETA: 00s - elapsed: 00s 240s > example(pbapply, run.dontrun = TRUE) 241s 241s pbpply> ## --- simple linear model simulation --- 241s pbpply> set.seed(1234) 241s 241s pbpply> n <- 200 241s 241s pbpply> x <- rnorm(n) 241s 241s pbpply> y <- rnorm(n, crossprod(t(model.matrix(~ x)), c(0, 1)), sd = 0.5) 241s 241s pbpply> d <- data.frame(y, x) 241s 241s pbpply> ## model fitting and bootstrap 241s pbpply> mod <- lm(y ~ x, d) 241s 241s pbpply> ndat <- model.frame(mod) 241s 241s pbpply> B <- 100 241s 241s pbpply> bid <- sapply(1:B, function(i) sample(nrow(ndat), nrow(ndat), TRUE)) 241s 241s pbpply> fun <- function(z) { 241s pbpply+ if (missing(z)) 241s pbpply+ z <- sample(nrow(ndat), nrow(ndat), TRUE) 241s pbpply+ coef(lm(mod$call$formula, data=ndat[z,])) 241s pbpply+ } 241s 241s pbpply> ## standard '*apply' functions 241s pbpply> system.time(res1 <- lapply(1:B, function(i) fun(bid[,i]))) 241s user system elapsed 241s 0.089 0.001 0.090 241s 241s pbpply> system.time(res2 <- sapply(1:B, function(i) fun(bid[,i]))) 241s user system elapsed 241s 0.08 0.00 0.08 241s 241s pbpply> system.time(res3 <- apply(bid, 2, fun)) 241s user system elapsed 241s 0.077 0.000 0.077 241s 241s pbpply> system.time(res4 <- replicate(B, fun())) 241s user system elapsed 241s 0.082 0.000 0.083 241s 241s pbpply> ## 'pb*apply' functions 241s pbpply> ## try different settings: 241s pbpply> ## "none", "txt", "tk", "win", "timer" 241s pbpply> op <- pboptions(type = "timer") # default 241s 241s pbpply> system.time(res1pb <- pblapply(1:B, function(i) fun(bid[,i]))) 241s | | 0 % ~calculating |+ | 1 % ~00s |+ | 2 % ~00s |++ | 3 % ~00s |++ | 4 % ~00s |+++ | 5 % ~00s |+++ | 6 % ~00s |++++ | 7 % ~00s |++++ | 8 % ~00s |+++++ | 9 % ~00s |+++++ | 10% ~00s |++++++ | 11% ~00s |++++++ | 12% ~00s |+++++++ | 13% ~00s |+++++++ | 14% ~00s |++++++++ | 15% ~00s |++++++++ | 16% ~00s |+++++++++ | 17% ~00s |+++++++++ | 18% ~00s |++++++++++ | 19% ~00s |++++++++++ | 20% ~00s |+++++++++++ | 21% ~00s |+++++++++++ | 22% ~00s |++++++++++++ | 23% ~00s |++++++++++++ | 24% ~00s |+++++++++++++ | 25% ~00s |+++++++++++++ | 26% ~00s |++++++++++++++ | 27% ~00s |++++++++++++++ | 28% ~00s |+++++++++++++++ | 29% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++ | 31% ~00s |++++++++++++++++ | 32% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++ | 34% ~00s |++++++++++++++++++ | 35% ~00s |++++++++++++++++++ | 36% ~00s |+++++++++++++++++++ | 37% ~00s |+++++++++++++++++++ | 38% ~00s |++++++++++++++++++++ | 39% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++ | 41% ~00s |+++++++++++++++++++++ | 42% ~00s |++++++++++++++++++++++ | 43% ~00s |++++++++++++++++++++++ | 44% ~00s |+++++++++++++++++++++++ | 45% ~00s |+++++++++++++++++++++++ | 46% ~00s |++++++++++++++++++++++++ | 47% ~00s |++++++++++++++++++++++++ | 48% ~00s |+++++++++++++++++++++++++ | 49% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++ | 51% ~00s |++++++++++++++++++++++++++ | 52% ~00s |+++++++++++++++++++++++++++ | 53% ~00s |+++++++++++++++++++++++++++ | 54% ~00s |++++++++++++++++++++++++++++ | 55% ~00s |++++++++++++++++++++++++++++ | 56% ~00s |+++++++++++++++++++++++++++++ | 57% ~00s |+++++++++++++++++++++++++++++ | 58% ~00s |++++++++++++++++++++++++++++++ | 59% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++ | 61% ~00s |+++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++ | 63% ~00s |++++++++++++++++++++++++++++++++ | 64% ~00s |+++++++++++++++++++++++++++++++++ | 65% ~00s |+++++++++++++++++++++++++++++++++ | 66% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++ | 68% ~00s |+++++++++++++++++++++++++++++++++++ | 69% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++ | 71% ~00s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 73% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 77% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 79% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 241s user system elapsed 241s 0.100 0.003 0.110 241s 241s pbpply> pboptions(op) 241s 241s pbpply> pboptions(type = "txt") 241s 241s pbpply> system.time(res2pb <- pbsapply(1:B, function(i) fun(bid[,i]))) 241s | | | 0% | | | 1% | |+ | 2% | |++ | 3% | |++ | 4% | |++ | 5% | |+++ | 6% | |++++ | 7% | |++++ | 8% | |++++ | 9% | |+++++ | 10% | |++++++ | 11% | |++++++ | 12% | |++++++ | 13% | |+++++++ | 14% | |++++++++ | 15% | |++++++++ | 16% | |++++++++ | 17% | |+++++++++ | 18% | |++++++++++ | 19% | |++++++++++ | 20% | |++++++++++ | 21% | |+++++++++++ | 22% | |++++++++++++ | 23% | |++++++++++++ | 24% | |++++++++++++ | 25% | |+++++++++++++ | 26% | |++++++++++++++ | 27% | |++++++++++++++ | 28% | |++++++++++++++ | 29% | |+++++++++++++++ | 30% | |++++++++++++++++ | 31% | |++++++++++++++++ | 32% | |++++++++++++++++ | 33% | |+++++++++++++++++ | 34% | |++++++++++++++++++ | 35% | |++++++++++++++++++ | 36% | |++++++++++++++++++ | 37% | |+++++++++++++++++++ | 38% | |++++++++++++++++++++ | 39% | |++++++++++++++++++++ | 40% | |++++++++++++++++++++ | 41% | |+++++++++++++++++++++ | 42% | |++++++++++++++++++++++ | 43% | |++++++++++++++++++++++ | 44% | |++++++++++++++++++++++ | 45% | |+++++++++++++++++++++++ | 46% | |++++++++++++++++++++++++ | 47% | |++++++++++++++++++++++++ | 48% | |++++++++++++++++++++++++ | 49% | |+++++++++++++++++++++++++ | 50% | |++++++++++++++++++++++++++ | 51% | |++++++++++++++++++++++++++ | 52% | |++++++++++++++++++++++++++ | 53% | |+++++++++++++++++++++++++++ | 54% | |++++++++++++++++++++++++++++ | 55% | |++++++++++++++++++++++++++++ | 56% | |++++++++++++++++++++++++++++ | 57% | |+++++++++++++++++++++++++++++ | 58% | |++++++++++++++++++++++++++++++ | 59% | |++++++++++++++++++++++++++++++ | 60% | |++++++++++++++++++++++++++++++ | 61% | |+++++++++++++++++++++++++++++++ | 62% | |++++++++++++++++++++++++++++++++ | 63% | |++++++++++++++++++++++++++++++++ | 64% | |++++++++++++++++++++++++++++++++ | 65% | |+++++++++++++++++++++++++++++++++ | 66% | |++++++++++++++++++++++++++++++++++ | 67% | |++++++++++++++++++++++++++++++++++ | 68% | |++++++++++++++++++++++++++++++++++ | 69% | |+++++++++++++++++++++++++++++++++++ | 70% | |++++++++++++++++++++++++++++++++++++ | 71% | |++++++++++++++++++++++++++++++++++++ | 72% | |++++++++++++++++++++++++++++++++++++ | 73% | |+++++++++++++++++++++++++++++++++++++ | 74% | |++++++++++++++++++++++++++++++++++++++ | 75% | |++++++++++++++++++++++++++++++++++++++ | 76% | |++++++++++++++++++++++++++++++++++++++ | 77% | |+++++++++++++++++++++++++++++++++++++++ | 78% | |++++++++++++++++++++++++++++++++++++++++ | 79% | |++++++++++++++++++++++++++++++++++++++++ | 80% | |++++++++++++++++++++++++++++++++++++++++ | 81% | |+++++++++++++++++++++++++++++++++++++++++ | 82% | |++++++++++++++++++++++++++++++++++++++++++ | 83% | |++++++++++++++++++++++++++++++++++++++++++ | 84% | |++++++++++++++++++++++++++++++++++++++++++ | 85% | |+++++++++++++++++++++++++++++++++++++++++++ | 86% | |++++++++++++++++++++++++++++++++++++++++++++ | 87% | |++++++++++++++++++++++++++++++++++++++++++++ | 88% | |++++++++++++++++++++++++++++++++++++++++++++ | 89% | |+++++++++++++++++++++++++++++++++++++++++++++ | 90% | |++++++++++++++++++++++++++++++++++++++++++++++ | 91% | |++++++++++++++++++++++++++++++++++++++++++++++ | 92% | |++++++++++++++++++++++++++++++++++++++++++++++ | 93% | |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% | |++++++++++++++++++++++++++++++++++++++++++++++++ | 95% | |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% | |++++++++++++++++++++++++++++++++++++++++++++++++ | 97% | |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% | |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% | |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% 241s user system elapsed 241s 0.103 0.000 0.108 241s 241s pbpply> pboptions(op) 241s 241s pbpply> pboptions(type = "txt", style = 1, char = "=") 241s 241s pbpply> system.time(res3pb <- pbapply(bid, 2, fun)) 241s ================================================== 241s user system elapsed 241s 0.088 0.002 0.092 241s 241s pbpply> pboptions(op) 241s 241s pbpply> pboptions(type = "txt", char = ":") 241s 241s pbpply> system.time(res4pb <- pbreplicate(B, fun())) 242s | | | 0% | | | 1% | |: | 2% | |:: | 3% | |:: | 4% | |:: | 5% | |::: | 6% | |:::: | 7% | |:::: | 8% | |:::: | 9% | |::::: | 10% | |:::::: | 11% | |:::::: | 12% | |:::::: | 13% | |::::::: | 14% | |:::::::: | 15% | |:::::::: | 16% | |:::::::: | 17% | |::::::::: | 18% | |:::::::::: | 19% | |:::::::::: | 20% | |:::::::::: | 21% | |::::::::::: | 22% | |:::::::::::: | 23% | |:::::::::::: | 24% | |:::::::::::: | 25% | |::::::::::::: | 26% | |:::::::::::::: | 27% | |:::::::::::::: | 28% | |:::::::::::::: | 29% | |::::::::::::::: | 30% | |:::::::::::::::: | 31% | |:::::::::::::::: | 32% | |:::::::::::::::: | 33% | |::::::::::::::::: | 34% | |:::::::::::::::::: | 35% | |:::::::::::::::::: | 36% | |:::::::::::::::::: | 37% | |::::::::::::::::::: | 38% | |:::::::::::::::::::: | 39% | |:::::::::::::::::::: | 40% | |:::::::::::::::::::: | 41% | |::::::::::::::::::::: | 42% | |:::::::::::::::::::::: | 43% | |:::::::::::::::::::::: | 44% | |:::::::::::::::::::::: | 45% | |::::::::::::::::::::::: | 46% | |:::::::::::::::::::::::: | 47% | |:::::::::::::::::::::::: | 48% | |:::::::::::::::::::::::: | 49% | |::::::::::::::::::::::::: | 50% | |:::::::::::::::::::::::::: | 51% | |:::::::::::::::::::::::::: | 52% | |:::::::::::::::::::::::::: | 53% | |::::::::::::::::::::::::::: | 54% | |:::::::::::::::::::::::::::: | 55% | |:::::::::::::::::::::::::::: | 56% | |:::::::::::::::::::::::::::: | 57% | |::::::::::::::::::::::::::::: | 58% | |:::::::::::::::::::::::::::::: | 59% | |:::::::::::::::::::::::::::::: | 60% | |:::::::::::::::::::::::::::::: | 61% | |::::::::::::::::::::::::::::::: | 62% | |:::::::::::::::::::::::::::::::: | 63% | |:::::::::::::::::::::::::::::::: | 64% | |:::::::::::::::::::::::::::::::: | 65% | |::::::::::::::::::::::::::::::::: | 66% | |:::::::::::::::::::::::::::::::::: | 67% | |:::::::::::::::::::::::::::::::::: | 68% | |:::::::::::::::::::::::::::::::::: | 69% | |::::::::::::::::::::::::::::::::::: | 70% | |:::::::::::::::::::::::::::::::::::: | 71% | |:::::::::::::::::::::::::::::::::::: | 72% | |:::::::::::::::::::::::::::::::::::: | 73% | |::::::::::::::::::::::::::::::::::::: | 74% | |:::::::::::::::::::::::::::::::::::::: | 75% | |:::::::::::::::::::::::::::::::::::::: | 76% | |:::::::::::::::::::::::::::::::::::::: | 77% | |::::::::::::::::::::::::::::::::::::::: | 78% | |:::::::::::::::::::::::::::::::::::::::: | 79% | |:::::::::::::::::::::::::::::::::::::::: | 80% | |:::::::::::::::::::::::::::::::::::::::: | 81% | |::::::::::::::::::::::::::::::::::::::::: | 82% | |:::::::::::::::::::::::::::::::::::::::::: | 83% | |:::::::::::::::::::::::::::::::::::::::::: | 84% | |:::::::::::::::::::::::::::::::::::::::::: | 85% | |::::::::::::::::::::::::::::::::::::::::::: | 86% | |:::::::::::::::::::::::::::::::::::::::::::: | 87% | |:::::::::::::::::::::::::::::::::::::::::::: | 88% | |:::::::::::::::::::::::::::::::::::::::::::: | 89% | |::::::::::::::::::::::::::::::::::::::::::::: | 90% | |:::::::::::::::::::::::::::::::::::::::::::::: | 91% | |:::::::::::::::::::::::::::::::::::::::::::::: | 92% | |:::::::::::::::::::::::::::::::::::::::::::::: | 93% | |::::::::::::::::::::::::::::::::::::::::::::::: | 94% | |:::::::::::::::::::::::::::::::::::::::::::::::: | 95% | |:::::::::::::::::::::::::::::::::::::::::::::::: | 96% | |:::::::::::::::::::::::::::::::::::::::::::::::: | 97% | |::::::::::::::::::::::::::::::::::::::::::::::::: | 98% | |::::::::::::::::::::::::::::::::::::::::::::::::::| 99% | |::::::::::::::::::::::::::::::::::::::::::::::::::| 100% 242s user system elapsed 242s 0.096 0.004 0.110 242s 242s pbpply> pboptions(op) 242s 242s pbpply> ## parallel evaluation using the parallel package 242s pbpply> ## (n = 2000 and B = 1000 will give visible timing differences) 242s pbpply> 242s pbpply> library(parallel) 242s 242s pbpply> cl <- makeCluster(2L) 242s 242s pbpply> clusterExport(cl, c("fun", "mod", "ndat", "bid")) 242s 242s pbpply> ## parallel with no progress bar: snow type cluster 242s pbpply> ## (RNG is set in the main process to define the object bid) 242s pbpply> system.time(res1cl <- parLapply(cl = cl, 1:B, function(i) fun(bid[,i]))) 242s user system elapsed 242s 0.003 0.000 0.319 242s 242s pbpply> system.time(res2cl <- parSapply(cl = cl, 1:B, function(i) fun(bid[,i]))) 243s user system elapsed 243s 0.003 0.000 0.047 243s 243s pbpply> system.time(res3cl <- parApply(cl, bid, 2, fun)) 243s user system elapsed 243s 0.003 0.000 0.046 243s 243s pbpply> ## parallel with progress bar: snow type cluster 243s pbpply> ## (RNG is set in the main process to define the object bid) 243s pbpply> system.time(res1pbcl <- pblapply(1:B, function(i) fun(bid[,i]), cl = cl)) 243s user system elapsed 243s 0.003 0.000 0.085 243s 243s pbpply> system.time(res2pbcl <- pbsapply(1:B, function(i) fun(bid[,i]), cl = cl)) 243s user system elapsed 243s 0.002 0.000 0.047 243s 243s pbpply> ## (RNG needs to be set when not using bid) 243s pbpply> parallel::clusterSetRNGStream(cl, iseed = 0L) 243s 243s pbpply> system.time(res4pbcl <- pbreplicate(B, fun(), cl = cl)) 243s user system elapsed 243s 0.002 0.000 0.062 243s 243s pbpply> system.time(res3pbcl <- pbapply(bid, 2, fun, cl = cl)) 243s user system elapsed 243s 0.003 0.000 0.092 243s 243s pbpply> stopCluster(cl) 243s 243s pbpply> if (.Platform$OS.type != "windows") { 243s pbpply+ ## parallel with no progress bar: multicore type forking 243s pbpply+ ## (mc.set.seed = TRUE in parallel::mclapply by default) 243s pbpply+ system.time(res2mc <- mclapply(1:B, function(i) fun(bid[,i]), mc.cores = 2L)) 243s pbpply+ ## parallel with progress bar: multicore type forking 243s pbpply+ ## (mc.set.seed = TRUE in parallel::mclapply by default) 243s pbpply+ system.time(res1pbmc <- pblapply(1:B, function(i) fun(bid[,i]), cl = 2L)) 243s pbpply+ system.time(res2pbmc <- pbsapply(1:B, function(i) fun(bid[,i]), cl = 2L)) 243s pbpply+ system.time(res4pbmc <- pbreplicate(B, fun(), cl = 2L)) 243s pbpply+ } 244s user system elapsed 244s 0.001 0.004 0.086 244s 244s pbpply> ## --- Examples taken from standard '*apply' functions --- 244s pbpply> 244s pbpply> ## --- sapply, lapply, and replicate --- 244s pbpply> 244s pbpply> require(stats); require(graphics) 244s 244s pbpply> x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE)) 244s 244s pbpply> # compute the list mean for each list element 244s pbpply> pblapply(x, mean) 244s $a 244s [1] 5.5 244s 244s $beta 244s [1] 4.535125 244s 244s $logic 244s [1] 0.5 244s 244s 244s pbpply> pbwalk(x, mean) 244s 244s pbpply> # median and quartiles for each list element 244s pbpply> pblapply(x, quantile, probs = 1:3/4) 244s $a 244s 25% 50% 75% 244s 3.25 5.50 7.75 244s 244s $beta 244s 25% 50% 75% 244s 0.2516074 1.0000000 5.0536690 244s 244s $logic 244s 25% 50% 75% 244s 0.0 0.5 1.0 244s 244s 244s pbpply> pbsapply(x, quantile) 244s a beta logic 244s 0% 1.00 0.04978707 0.0 244s 25% 3.25 0.25160736 0.0 244s 50% 5.50 1.00000000 0.5 244s 75% 7.75 5.05366896 1.0 244s 100% 10.00 20.08553692 1.0 244s 244s pbpply> i39 <- sapply(3:9, seq) # list of vectors 244s 244s pbpply> pbsapply(i39, fivenum) 244s [,1] [,2] [,3] [,4] [,5] [,6] [,7] 244s [1,] 1.0 1.0 1 1.0 1.0 1.0 1 244s [2,] 1.5 1.5 2 2.0 2.5 2.5 3 244s [3,] 2.0 2.5 3 3.5 4.0 4.5 5 244s [4,] 2.5 3.5 4 5.0 5.5 6.5 7 244s [5,] 3.0 4.0 5 6.0 7.0 8.0 9 244s 244s pbpply> pbvapply(i39, fivenum, 244s pbpply+ c(Min. = 0, "1st Qu." = 0, Median = 0, "3rd Qu." = 0, Max. = 0)) 244s [,1] [,2] [,3] [,4] [,5] [,6] [,7] 244s Min. 1.0 1.0 1 1.0 1.0 1.0 1 244s 1st Qu. 1.5 1.5 2 2.0 2.5 2.5 3 244s Median 2.0 2.5 3 3.5 4.0 4.5 5 244s 3rd Qu. 2.5 3.5 4 5.0 5.5 6.5 7 244s Max. 3.0 4.0 5 6.0 7.0 8.0 9 244s 244s pbpply> ## sapply(*, "array") -- artificial example 244s pbpply> (v <- structure(10*(5:8), names = LETTERS[1:4])) 244s A B C D 244s 50 60 70 80 244s 244s pbpply> f2 <- function(x, y) outer(rep(x, length.out = 3), y) 244s 244s pbpply> (a2 <- pbsapply(v, f2, y = 2*(1:5), simplify = "array")) 244s , , A 244s 244s [,1] [,2] [,3] [,4] [,5] 244s [1,] 100 200 300 400 500 244s [2,] 100 200 300 400 500 244s [3,] 100 200 300 400 500 244s 244s , , B 244s 244s [,1] [,2] [,3] [,4] [,5] 244s [1,] 120 240 360 480 600 244s [2,] 120 240 360 480 600 244s [3,] 120 240 360 480 600 244s 244s , , C 244s 244s [,1] [,2] [,3] [,4] [,5] 244s [1,] 140 280 420 560 700 244s [2,] 140 280 420 560 700 244s [3,] 140 280 420 560 700 244s 244s , , D 244s 244s [,1] [,2] [,3] [,4] [,5] 244s [1,] 160 320 480 640 800 244s [2,] 160 320 480 640 800 244s [3,] 160 320 480 640 800 244s 244s 244s pbpply> a.2 <- pbvapply(v, f2, outer(1:3, 1:5), y = 2*(1:5)) 244s 244s pbpply> stopifnot(dim(a2) == c(3,5,4), all.equal(a2, a.2), 244s pbpply+ identical(dimnames(a2), list(NULL,NULL,LETTERS[1:4]))) 244s 244s pbpply> summary(pbreplicate(100, mean(rexp(10)))) 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 0.4786 0.7273 0.9091 0.9666 1.1917 2.3021 244s 244s pbpply> ## use of replicate() with parameters: 244s pbpply> foo <- function(x = 1, y = 2) c(x, y) 244s 244s pbpply> # does not work: bar <- function(n, ...) replicate(n, foo(...)) 244s pbpply> bar <- function(n, x) pbreplicate(n, foo(x = x)) 244s 244s pbpply> bar(5, x = 3) 244s [,1] [,2] [,3] [,4] [,5] 244s [1,] 3 3 3 3 3 244s [2,] 2 2 2 2 2 244s 244s pbpply> ## --- apply --- 244s pbpply> 244s pbpply> ## Compute row and column sums for a matrix: 244s pbpply> x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 244s 244s pbpply> dimnames(x)[[1]] <- letters[1:8] 244s 244s pbpply> pbapply(x, 2, mean, trim = .2) 244s x1 x2 244s 3 3 244s 244s pbpply> col.sums <- pbapply(x, 2, sum) 244s 244s pbpply> row.sums <- pbapply(x, 1, sum) 244s 244s pbpply> rbind(cbind(x, Rtot = row.sums), Ctot = c(col.sums, sum(col.sums))) 244s x1 x2 Rtot 244s a 3 4 7 244s b 3 3 6 244s c 3 2 5 244s d 3 1 4 244s e 3 2 5 244s f 3 3 6 244s g 3 4 7 244s h 3 5 8 244s Ctot 24 24 48 244s 244s pbpply> stopifnot( pbapply(x, 2, is.vector)) 244s 244s pbpply> ## Sort the columns of a matrix 244s pbpply> pbapply(x, 2, sort) 244s x1 x2 244s [1,] 3 1 244s [2,] 3 2 244s [3,] 3 2 244s [4,] 3 3 244s [5,] 3 3 244s [6,] 3 4 244s [7,] 3 4 244s [8,] 3 5 244s 244s pbpply> ## keeping named dimnames 244s pbpply> names(dimnames(x)) <- c("row", "col") 244s 244s pbpply> x3 <- array(x, dim = c(dim(x),3), 244s pbpply+ dimnames = c(dimnames(x), list(C = paste0("cop.",1:3)))) 244s 244s pbpply> identical(x, pbapply( x, 2, identity)) 244s [1] TRUE 244s 244s pbpply> identical(x3, pbapply(x3, 2:3, identity)) 244s [1] TRUE 244s 244s pbpply> ##- function with extra args: 244s pbpply> cave <- function(x, c1, c2) c(mean(x[c1]), mean(x[c2])) 244s 244s pbpply> pbapply(x, 1, cave, c1 = "x1", c2 = c("x1","x2")) 244s row 244s a b c d e f g h 244s [1,] 3.0 3 3.0 3 3.0 3 3.0 3 244s [2,] 3.5 3 2.5 2 2.5 3 3.5 4 244s 244s pbpply> ma <- matrix(c(1:4, 1, 6:8), nrow = 2) 244s 244s pbpply> ma 244s [,1] [,2] [,3] [,4] 244s [1,] 1 3 1 7 244s [2,] 2 4 6 8 244s 244s pbpply> pbapply(ma, 1, table) #--> a list of length 2 244s [[1]] 244s 244s 1 3 7 244s 2 1 1 244s 244s [[2]] 244s 244s 2 4 6 8 244s 1 1 1 1 244s 244s 244s pbpply> pbapply(ma, 1, stats::quantile) # 5 x n matrix with rownames 244s [,1] [,2] 244s 0% 1 2.0 244s 25% 1 3.5 244s 50% 2 5.0 244s 75% 4 6.5 244s 100% 7 8.0 244s 244s pbpply> stopifnot(dim(ma) == dim(pbapply(ma, 1:2, sum))) 244s 244s pbpply> ## Example with different lengths for each call 244s pbpply> z <- array(1:24, dim = 2:4) 244s 244s pbpply> zseq <- pbapply(z, 1:2, function(x) seq_len(max(x))) 244s 244s pbpply> zseq ## a 2 x 3 matrix 244s [,1] [,2] [,3] 244s [1,] integer,19 integer,21 integer,23 244s [2,] integer,20 integer,22 integer,24 244s 244s pbpply> typeof(zseq) ## list 244s [1] "list" 244s 244s pbpply> dim(zseq) ## 2 3 244s [1] 2 3 244s 244s pbpply> zseq[1,] 244s [[1]] 244s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 244s 244s [[2]] 244s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 244s 244s [[3]] 244s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 244s 244s 244s pbpply> pbapply(z, 3, function(x) seq_len(max(x))) 244s [[1]] 244s [1] 1 2 3 4 5 6 244s 244s [[2]] 244s [1] 1 2 3 4 5 6 7 8 9 10 11 12 244s 244s [[3]] 244s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 244s 244s [[4]] 244s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 244s 244s 244s pbpply> # a list without a dim attribute 244s pbpply> 244s pbpply> ## --- mapply and .mapply --- 244s pbpply> 244s pbpply> pbmapply(rep, 1:4, 4:1) 244s [[1]] 244s [1] 1 1 1 1 244s 244s [[2]] 244s [1] 2 2 2 244s 244s [[3]] 244s [1] 3 3 244s 244s [[4]] 244s [1] 4 244s 244s 244s pbpply> pbmapply(rep, times = 1:4, x = 4:1) 244s [[1]] 244s [1] 4 244s 244s [[2]] 244s [1] 3 3 244s 244s [[3]] 244s [1] 2 2 2 244s 244s [[4]] 244s [1] 1 1 1 1 244s 244s 244s pbpply> pbmapply(rep, times = 1:4, MoreArgs = list(x = 42)) 244s [[1]] 244s [1] 42 244s 244s [[2]] 244s [1] 42 42 244s 244s [[3]] 244s [1] 42 42 42 244s 244s [[4]] 244s [1] 42 42 42 42 244s 244s 244s pbpply> pbmapply(function(x, y) seq_len(x) + y, 244s pbpply+ c(a = 1, b = 2, c = 3), # names from first 244s pbpply+ c(A = 10, B = 0, C = -10)) 244s $a 244s [1] 11 244s 244s $b 244s [1] 1 2 244s 244s $c 244s [1] -9 -8 -7 244s 244s 244s pbpply> word <- function(C, k) paste(rep.int(C, k), collapse = "") 244s 244s pbpply> utils::str(pbmapply(word, LETTERS[1:6], 6:1, SIMPLIFY = FALSE)) 244s List of 6 244s $ A: chr "AAAAAA" 244s $ B: chr "BBBBB" 244s $ C: chr "CCCC" 244s $ D: chr "DDD" 244s $ E: chr "EE" 244s $ F: chr "F" 244s 244s pbpply> pb.mapply(rep, 244s pbpply+ dots = list(1:4, 4:1), 244s pbpply+ MoreArgs = list()) 244s [[1]] 244s [1] 1 1 1 1 244s 244s [[2]] 244s [1] 2 2 2 244s 244s [[3]] 244s [1] 3 3 244s 244s [[4]] 244s [1] 4 244s 244s 244s pbpply> pb.mapply(rep, 244s pbpply+ dots = list(times = 1:4, x = 4:1), 244s pbpply+ MoreArgs = list()) 244s [[1]] 244s [1] 4 244s 244s [[2]] 244s [1] 3 3 244s 244s [[3]] 244s [1] 2 2 2 244s 244s [[4]] 244s [1] 1 1 1 1 244s 244s 244s pbpply> pb.mapply(rep, 244s pbpply+ dots = list(times = 1:4), 244s pbpply+ MoreArgs = list(x = 42)) 244s [[1]] 244s [1] 42 244s 244s [[2]] 244s [1] 42 42 244s 244s [[3]] 244s [1] 42 42 42 244s 244s [[4]] 244s [1] 42 42 42 42 244s 244s 244s pbpply> pb.mapply(function(x, y) seq_len(x) + y, 244s pbpply+ dots = list(c(a = 1, b = 2, c = 3), # names from first 244s pbpply+ c(A = 10, B = 0, C = -10)), 244s pbpply+ MoreArgs = list()) 244s [[1]] 244s [1] 11 244s 244s [[2]] 244s [1] 1 2 244s 244s [[3]] 244s [1] -9 -8 -7 244s 244s 244s pbpply> ## --- Map --- 244s pbpply> 244s pbpply> pbMap(`+`, 1, 1 : 3) ; 1 + 1:3 244s [[1]] 244s [1] 2 244s 244s [[2]] 244s [1] 3 244s 244s [[3]] 244s [1] 4 244s 244s [1] 2 3 4 244s 244s pbpply> ## --- eapply --- 244s pbpply> 244s pbpply> env <- new.env(hash = FALSE) 244s 244s pbpply> env$a <- 1:10 244s 244s pbpply> env$beta <- exp(-3:3) 244s 244s pbpply> env$logic <- c(TRUE, FALSE, FALSE, TRUE) 244s 244s pbpply> pbeapply(env, mean) 244s $logic 244s [1] 0.5 244s 244s $beta 244s [1] 4.535125 244s 244s $a 244s [1] 5.5 244s 244s 244s pbpply> unlist(pbeapply(env, mean, USE.NAMES = FALSE)) 244s [1] 0.500000 4.535125 5.500000 244s 244s pbpply> pbeapply(env, quantile, probs = 1:3/4) 244s $logic 244s 25% 50% 75% 244s 0.0 0.5 1.0 244s 244s $beta 244s 25% 50% 75% 244s 0.2516074 1.0000000 5.0536690 244s 244s $a 244s 25% 50% 75% 244s 3.25 5.50 7.75 244s 244s 244s pbpply> pbeapply(env, quantile) 244s $logic 244s 0% 25% 50% 75% 100% 244s 0.0 0.0 0.5 1.0 1.0 244s 244s $beta 244s 0% 25% 50% 75% 100% 244s 0.04978707 0.25160736 1.00000000 5.05366896 20.08553692 244s 244s $a 244s 0% 25% 50% 75% 100% 244s 1.00 3.25 5.50 7.75 10.00 244s 244s 244s pbpply> ## --- tapply --- 244s pbpply> 244s pbpply> require(stats) 244s 244s pbpply> groups <- as.factor(rbinom(32, n = 5, prob = 0.4)) 244s 244s pbpply> pbtapply(groups, groups, length) #- is almost the same as 244s 10 11 13 14 18 244s 1 1 1 1 1 244s 244s pbpply> table(groups) 244s groups 244s 10 11 13 14 18 244s 1 1 1 1 1 244s 244s pbpply> ## contingency table from data.frame : array with named dimnames 244s pbpply> pbtapply(warpbreaks$breaks, warpbreaks[,-1], sum) 244s tension 244s wool L M H 244s A 401 216 221 244s B 254 259 169 244s 244s pbpply> pbtapply(warpbreaks$breaks, warpbreaks[, 3, drop = FALSE], sum) 244s tension 244s L M H 244s 655 475 390 244s 244s pbpply> n <- 17; fac <- factor(rep_len(1:3, n), levels = 1:5) 244s 244s pbpply> table(fac) 244s fac 244s 1 2 3 4 5 244s 6 6 5 0 0 244s 244s pbpply> pbtapply(1:n, fac, sum) 244s 1 2 3 4 5 244s 51 57 45 NA NA 244s 244s pbpply> pbtapply(1:n, fac, sum, default = 0) # maybe more desirable 244s 1 2 3 4 5 244s 51 57 45 0 0 244s 244s pbpply> pbtapply(1:n, fac, sum, simplify = FALSE) 244s $`1` 244s [1] 51 244s 244s $`2` 244s [1] 57 244s 244s $`3` 244s [1] 45 244s 244s $`4` 244s NULL 244s 244s $`5` 244s NULL 244s 244s 244s pbpply> pbtapply(1:n, fac, range) 244s $`1` 244s [1] 1 16 244s 244s $`2` 244s [1] 2 17 244s 244s $`3` 244s [1] 3 15 244s 244s $`4` 244s NULL 244s 244s $`5` 244s NULL 244s 244s 244s pbpply> pbtapply(1:n, fac, quantile) 244s $`1` 244s 0% 25% 50% 75% 100% 244s 1.00 4.75 8.50 12.25 16.00 244s 244s $`2` 244s 0% 25% 50% 75% 100% 244s 2.00 5.75 9.50 13.25 17.00 244s 244s $`3` 244s 0% 25% 50% 75% 100% 244s 3 6 9 12 15 244s 244s $`4` 244s NULL 244s 244s $`5` 244s NULL 244s 244s 244s pbpply> pbtapply(1:n, fac, length) ## NA's 244s 1 2 3 4 5 244s 6 6 5 NA NA 244s 244s pbpply> pbtapply(1:n, fac, length, default = 0) # == table(fac) 244s 1 2 3 4 5 244s 6 6 5 0 0 244s 244s pbpply> ## example of ... argument: find quarterly means 244s pbpply> pbtapply(presidents, cycle(presidents), mean, na.rm = TRUE) 244s 1 2 3 4 244s 58.44828 56.43333 57.22222 53.07143 244s 244s pbpply> ind <- list(c(1, 2, 2), c("A", "A", "B")) 244s 244s pbpply> table(ind) 244s ind.2 244s ind.1 A B 244s 1 1 0 244s 2 1 1 244s 244s pbpply> pbtapply(1:3, ind) #-> the split vector 244s [1] 1 2 4 244s 244s pbpply> pbtapply(1:3, ind, sum) 244s A B 244s 1 1 NA 244s 2 2 3 244s 244s pbpply> ## Some assertions (not held by all patch propsals): 244s pbpply> nq <- names(quantile(1:5)) 244s 244s pbpply> stopifnot( 244s pbpply+ identical(pbtapply(1:3, ind), c(1L, 2L, 4L)), 244s pbpply+ identical(pbtapply(1:3, ind, sum), 244s pbpply+ matrix(c(1L, 2L, NA, 3L), 2, dimnames = list(c("1", "2"), c("A", "B")))), 244s pbpply+ identical(pbtapply(1:n, fac, quantile)[-1], 244s pbpply+ array(list(`2` = structure(c(2, 5.75, 9.5, 13.25, 17), .Names = nq), 244s pbpply+ `3` = structure(c(3, 6, 9, 12, 15), .Names = nq), 244s pbpply+ `4` = NULL, `5` = NULL), dim=4, dimnames=list(as.character(2:5))))) 244s 244s pbpply> ## --- by --- 244s pbpply> 244s pbpply> pbby(warpbreaks[, 1:2], warpbreaks[,"tension"], summary) 244s warpbreaks[, "tension"]: L 244s breaks wool 244s Min. :14.00 A:9 244s 1st Qu.:26.00 B:9 244s Median :29.50 244s Mean :36.39 244s 3rd Qu.:49.25 244s Max. :70.00 244s ------------------------------------------------------------ 244s warpbreaks[, "tension"]: M 244s breaks wool 244s Min. :12.00 A:9 244s 1st Qu.:18.25 B:9 244s Median :27.00 244s Mean :26.39 244s 3rd Qu.:33.75 244s Max. :42.00 244s ------------------------------------------------------------ 244s warpbreaks[, "tension"]: H 244s breaks wool 244s Min. :10.00 A:9 244s 1st Qu.:15.25 B:9 244s Median :20.50 244s Mean :21.67 244s 3rd Qu.:25.50 244s Max. :43.00 244s 244s pbpply> pbby(warpbreaks[, 1], warpbreaks[, -1], summary) 244s wool: A 244s tension: L 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 25.00 26.00 51.00 44.56 54.00 70.00 244s ------------------------------------------------------------ 244s wool: B 244s tension: L 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 14.00 20.00 29.00 28.22 31.00 44.00 244s ------------------------------------------------------------ 244s wool: A 244s tension: M 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 12 18 21 24 30 36 244s ------------------------------------------------------------ 244s wool: B 244s tension: M 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 16.00 21.00 28.00 28.78 39.00 42.00 244s ------------------------------------------------------------ 244s wool: A 244s tension: H 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 10.00 18.00 24.00 24.56 28.00 43.00 244s ------------------------------------------------------------ 244s wool: B 244s tension: H 244s Min. 1st Qu. Median Mean 3rd Qu. Max. 244s 13.00 15.00 17.00 18.78 21.00 28.00 244s 244s pbpply> pbby(warpbreaks, warpbreaks[,"tension"], 244s pbpply+ function(x) lm(breaks ~ wool, data = x)) 244s warpbreaks[, "tension"]: L 244s 244s Call: 244s lm(formula = breaks ~ wool, data = x) 244s 244s Coefficients: 244s (Intercept) woolB 244s 44.56 -16.33 244s 244s ------------------------------------------------------------ 244s warpbreaks[, "tension"]: M 244s 244s Call: 244s lm(formula = breaks ~ wool, data = x) 244s 244s Coefficients: 244s (Intercept) woolB 244s 24.000 4.778 244s 244s ------------------------------------------------------------ 244s warpbreaks[, "tension"]: H 244s 244s Call: 244s lm(formula = breaks ~ wool, data = x) 244s 244s Coefficients: 244s (Intercept) woolB 244s 24.556 -5.778 244s 244s 244s pbpply> tmp <- with(warpbreaks, 244s pbpply+ pbby(warpbreaks, tension, 244s pbpply+ function(x) lm(breaks ~ wool, data = x))) 244s 244s pbpply> sapply(tmp, coef) 244s L M H 244s (Intercept) 44.55556 24.000000 24.555556 244s woolB -16.33333 4.777778 -5.777778 244s > example(pboptions, run.dontrun = TRUE) 244s 244s pbptns> ## increase sluggishness to admire the progress bar longer 244s pbptns> sluggishness <- 0.01 244s 244s pbptns> ## for loop 244s pbptns> fun1 <- function() { 244s pbptns+ pb <- startpb(0, 10) 244s pbptns+ on.exit(closepb(pb)) 244s pbptns+ for (i in 1:10) { 244s pbptns+ Sys.sleep(sluggishness) 244s pbptns+ setpb(pb, i) 244s pbptns+ } 244s pbptns+ invisible(NULL) 244s pbptns+ } 244s 244s pbptns> ## while loop 244s pbptns> fun2 <- function() { 244s pbptns+ pb <- startpb(0, 10-1) 244s pbptns+ on.exit(closepb(pb)) 244s pbptns+ i <- 1 244s pbptns+ while (i < 10) { 244s pbptns+ Sys.sleep(sluggishness) 244s pbptns+ setpb(pb, i) 244s pbptns+ i <- i + 1 244s pbptns+ } 244s pbptns+ invisible(NULL) 244s pbptns+ } 244s 244s pbptns> ## using original settings 244s pbptns> fun1() 244s 244s pbptns> ## resetting pboptions 244s pbptns> opb <- pboptions(style = 1, char = ">") 244s 244s pbptns> ## check new settings 244s pbptns> getOption("pboptions") 244s $type 244s [1] "none" 244s 244s $char 244s [1] ">" 244s 244s $txt.width 244s [1] 50 244s 244s $gui.width 244s [1] 300 244s 244s $style 244s [1] 1 244s 244s $initial 244s [1] 0 244s 244s $title 244s [1] "R progress bar" 244s 244s $label 244s [1] "" 244s 244s $nout 244s [1] 100 244s 244s $min_time 244s [1] 0 244s 244s $use_lb 244s [1] FALSE 244s 244s 244s pbptns> ## running again with new settings 244s pbptns> fun2() 244s 244s pbptns> ## resetting original 244s pbptns> pboptions(opb) 244s 244s pbptns> ## check reset 244s pbptns> getOption("pboptions") 244s $type 244s [1] "none" 244s 244s $char 244s [1] "+" 244s 244s $txt.width 244s [1] 50 244s 244s $gui.width 244s [1] 300 244s 244s $style 244s [1] 3 244s 244s $initial 244s [1] 0 244s 244s $title 244s [1] "R progress bar" 244s 244s $label 244s [1] "" 244s 244s $nout 244s [1] 100 244s 244s $min_time 244s [1] 0 244s 244s $use_lb 244s [1] FALSE 244s 244s 244s pbptns> fun1() 244s 244s pbptns> ## dealing with nested progress bars 244s pbptns> ## when only one the 1st one is needed 244s pbptns> f <- function(x) Sys.sleep(sluggishness) 244s 244s pbptns> g <- function(x) pblapply(1:10, f) 244s 244s pbptns> tmp <- lapply(1:10, g) # undesirable 245s 245s pbptns> ## here is the desirable solution 245s pbptns> h <- function(x) { 245s pbptns+ opb <- pboptions(type="none") 245s pbptns+ on.exit(pboptions(opb)) 245s pbptns+ pblapply(1:10, f) 245s pbptns+ } 245s 245s pbptns> tmp <- pblapply(1:10, h) 246s 246s pbptns> ## list available pb types 246s pbptns> pbtypes() 246s [1] "timer" "txt" "tk" "none" "shiny" 246s > 246s > ## run examples with progress bar 246s > pboptions(type = "timer") 246s > example(splitpb, run.dontrun = TRUE) 246s 246s spltpb> ## define 1 job / worker at a time and repeat 246s spltpb> splitpb(10, 4) 246s [[1]] 247s [1] 1 2 3 4 247s 247s [[2]] 247s [1] 5 6 7 8 247s 247s [[3]] 247s [1] 9 10 247s 247s 247s spltpb> ## compare this to the no-progress-bar split 247s spltpb> ## that defines all the jubs / worker up front 247s spltpb> parallel::splitIndices(10, 4) 247s [[1]] 247s [1] 1 2 3 247s 247s [[2]] 247s [1] 4 5 247s 247s [[3]] 247s [1] 6 7 247s 247s [[4]] 247s [1] 8 9 10 247s 247s 247s spltpb> ## cap the length of the output 247s spltpb> splitpb(20, 2, nout = NULL) 247s [[1]] 247s [1] 1 2 247s 247s [[2]] 247s [1] 3 4 247s 247s [[3]] 247s [1] 5 6 247s 247s [[4]] 247s [1] 7 8 247s 247s [[5]] 247s [1] 9 10 247s 247s [[6]] 247s [1] 11 12 247s 247s [[7]] 247s [1] 13 14 247s 247s [[8]] 247s [1] 15 16 247s 247s [[9]] 247s [1] 17 18 247s 247s [[10]] 247s [1] 19 20 247s 247s 247s spltpb> splitpb(20, 2, nout = 5) 247s [[1]] 247s [1] 1 2 3 4 247s 247s [[2]] 247s [1] 5 6 7 8 247s 247s [[3]] 247s [1] 9 10 11 12 247s 247s [[4]] 247s [1] 13 14 15 16 247s 247s [[5]] 247s [1] 17 18 19 20 247s 247s > example(timerProgressBar, run.dontrun = TRUE) 247s 247s tmrPrB> ## increase sluggishness to admire the progress bar longer 247s tmrPrB> sluggishness <- 0.02 247s 247s tmrPrB> test_fun <- function(...) 247s tmrPrB+ { 247s tmrPrB+ pb <- timerProgressBar(...) 247s tmrPrB+ on.exit(close(pb)) 247s tmrPrB+ for (i in seq(0, 1, 0.05)) { 247s tmrPrB+ Sys.sleep(sluggishness) 247s tmrPrB+ setTimerProgressBar(pb, i) 247s tmrPrB+ } 247s tmrPrB+ invisible(NULL) 247s tmrPrB+ } 247s 247s tmrPrB> ## check the different styles 247s tmrPrB> test_fun(width = 35, char = "+", style = 1) 247s | | 0 % elapsed=00s | | 0 % elapsed=00s |++ | 5 % elapsed=00s, remaining~01s |++++ | 10% elapsed=00s, remaining~01s |++++++ | 15% elapsed=00s, remaining~00s |+++++++ | 20% elapsed=00s, remaining~00s |+++++++++ | 25% elapsed=00s, remaining~00s |+++++++++++ | 30% elapsed=00s, remaining~00s |+++++++++++++ | 35% elapsed=00s, remaining~00s |++++++++++++++ | 40% elapsed=00s, remaining~00s |++++++++++++++++ | 45% elapsed=00s, remaining~00s |++++++++++++++++++ | 50% elapsed=00s, remaining~00s |++++++++++++++++++++ | 55% elapsed=00s, remaining~00s |++++++++++++++++++++++ | 60% elapsed=00s, remaining~00s |+++++++++++++++++++++++ | 65% elapsed=00s, remaining~00s |+++++++++++++++++++++++++ | 70% elapsed=00s, remaining~00s |+++++++++++++++++++++++++++ | 75% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++ | 80% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++++ | 85% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++++++ | 90% elapsed=00s, remaining~00s |++++++++++++++++++++++++++++++++++ | 95% elapsed=00s, remaining~00s |+++++++++++++++++++++++++++++++++++| 100% elapsed=00s, remaining~00s 247s 247s tmrPrB> test_fun(style = 2) 247s / 0 % elapsed=00s / 0 % elapsed=00s - 5 % elapsed=00s, remaining~01s \ 10% elapsed=00s, remaining~01s | 15% elapsed=00s, remaining~00s / 20% elapsed=00s, remaining~00s - 25% elapsed=00s, remaining~00s \ 30% elapsed=00s, remaining~00s | 35% elapsed=00s, remaining~00s / 40% elapsed=00s, remaining~00s - 45% elapsed=00s, remaining~00s \ 50% elapsed=00s, remaining~00s | 55% elapsed=00s, remaining~00s / 60% elapsed=00s, remaining~00s - 65% elapsed=00s, remaining~00s \ 70% elapsed=00s, remaining~00s | 75% elapsed=00s, remaining~00s / 80% elapsed=00s, remaining~00s - 85% elapsed=00s, remaining~00s \ 90% elapsed=00s, remaining~00s | 95% elapsed=00s, remaining~00s / 100% elapsed=00s, remaining~00s 247s 247s tmrPrB> test_fun(width = 50, char = ".", style = 3) 248s | | 0 % ~calculating | | 0 % ~calculating |... | 5 % ~01s |..... | 10% ~01s |........ | 15% ~00s |.......... | 20% ~00s |............. | 25% ~00s |................ | 30% ~00s |.................. | 35% ~00s |.................... | 40% ~00s |....................... | 45% ~00s |......................... | 50% ~00s |............................ | 55% ~00s |............................... | 60% ~00s |................................. | 65% ~00s |................................... | 70% ~00s |...................................... | 75% ~00s |........................................ | 80% ~00s |........................................... | 85% ~00s |............................................. | 90% ~00s |................................................ | 95% ~00s |..................................................| 100% elapsed=00s 248s 248s tmrPrB> test_fun(style = 4) 248s / 0 % ~calculating / 0 % ~calculating - 5 % ~01s \ 10% ~01s | 15% ~00s / 20% ~00s - 25% ~00s \ 30% ~00s | 35% ~00s / 40% ~00s - 45% ~00s \ 50% ~00s | 55% ~00s / 60% ~00s - 65% ~00s \ 70% ~00s | 75% ~00s / 80% ~00s - 85% ~00s \ 90% ~00s | 95% ~00s / 100% elapsed=00s 248s 248s tmrPrB> test_fun(width = 35, char = "[=-]", style = 5) 249s [-----------------------------------] 0 % elapsed=00s [-----------------------------------] 0 % elapsed=00s [==---------------------------------] 5 % elapsed=00s, remaining~01s [====-------------------------------] 10% elapsed=00s, remaining~01s [======-----------------------------] 15% elapsed=00s, remaining~00s [=======----------------------------] 20% elapsed=00s, remaining~00s [=========--------------------------] 25% elapsed=00s, remaining~00s [===========------------------------] 30% elapsed=00s, remaining~00s [=============----------------------] 35% elapsed=00s, remaining~00s [==============---------------------] 40% elapsed=00s, remaining~00s [================-------------------] 45% elapsed=00s, remaining~00s [==================-----------------] 50% elapsed=00s, remaining~00s [====================---------------] 55% elapsed=00s, remaining~00s [======================-------------] 60% elapsed=00s, remaining~00s [=======================------------] 65% elapsed=00s, remaining~00s [=========================----------] 70% elapsed=00s, remaining~00s [===========================--------] 75% elapsed=00s, remaining~00s [============================-------] 80% elapsed=00s, remaining~00s [==============================-----] 85% elapsed=00s, remaining~00s [================================---] 90% elapsed=00s, remaining~00s [==================================-] 95% elapsed=00s, remaining~00s [===================================] 100% elapsed=00s, remaining~00s 249s 249s tmrPrB> test_fun(width = 50, char = "{*.}", style = 6) 249s {..................................................} 0 % ~calculating {..................................................} 0 % ~calculating {***...............................................} 5 % ~01s {*****.............................................} 10% ~01s {********..........................................} 15% ~00s {**********........................................} 20% ~00s {*************.....................................} 25% ~00s {****************..................................} 30% ~00s {******************................................} 35% ~00s {********************..............................} 40% ~00s {***********************...........................} 45% ~00s {*************************.........................} 50% ~00s {****************************......................} 55% ~00s {*******************************...................} 60% ~00s {*********************************.................} 65% ~00s {***********************************...............} 70% ~00s {**************************************............} 75% ~00s {****************************************..........} 80% ~00s {*******************************************.......} 85% ~00s {*********************************************.....} 90% ~00s {************************************************..} 95% ~00s {**************************************************} 100% elapsed=00s 249s 249s tmrPrB> ## no bar only percent and elapsed 249s tmrPrB> test_fun(width = 0, char = " ", style = 6) 249s 0 % ~calculating 0 % ~calculating 5 % ~01s 10% ~01s 15% ~00s 20% ~00s 25% ~00s 30% ~00s 35% ~00s 40% ~00s 45% ~00s 50% ~00s 55% ~00s 60% ~00s 65% ~00s 70% ~00s 75% ~00s 80% ~00s 85% ~00s 90% ~00s 95% ~00s 100% elapsed=00s 249s 249s tmrPrB> ## this should produce a progress bar based on min_time 249s tmrPrB> (elapsed <- system.time(test_fun(width = 35, min_time = 0))["elapsed"]) 250s | | 0 % elapsed=00s | | 0 % elapsed=00s |== | 5 % elapsed=00s, remaining~01s |==== | 10% elapsed=00s, remaining~01s |====== | 15% elapsed=00s, remaining~00s |======= | 20% elapsed=00s, remaining~00s |========= | 25% elapsed=00s, remaining~00s |=========== | 30% elapsed=00s, remaining~00s |============= | 35% elapsed=00s, remaining~00s |============== | 40% elapsed=00s, remaining~00s |================ | 45% elapsed=00s, remaining~00s |================== | 50% elapsed=00s, remaining~00s |==================== | 55% elapsed=00s, remaining~00s |====================== | 60% elapsed=00s, remaining~00s |======================= | 65% elapsed=00s, remaining~00s |========================= | 70% elapsed=00s, remaining~00s |=========================== | 75% elapsed=00s, remaining~00s |============================ | 80% elapsed=00s, remaining~00s |============================== | 85% elapsed=00s, remaining~00s |================================ | 90% elapsed=00s, remaining~00s |================================== | 95% elapsed=00s, remaining~00s |===================================| 100% elapsed=00s, remaining~00s 250s elapsed 250s 0.425 250s 250s tmrPrB> ## this should not produce a progress bar based on min_time 250s tmrPrB> system.time(test_fun(min_time = 2 * elapsed))["elapsed"] 250s elapsed 250s 0.422 250s 250s tmrPrB> ## time formatting 250s tmrPrB> getTimeAsString(NULL) 250s [1] "calculating" 250s 250s tmrPrB> getTimeAsString(15) 250s [1] "15s" 250s 250s tmrPrB> getTimeAsString(65) 250s [1] "01m 05s" 250s 250s tmrPrB> getTimeAsString(6005) 250s [1] "01h 40m 05s" 250s 250s tmrPrB> ## example usage of getTimeAsString, use sluggishness <- 1 250s tmrPrB> n <- 10 250s 250s tmrPrB> t0 <- proc.time()[3] 250s 250s tmrPrB> ETA <- NULL 250s 250s tmrPrB> for (i in seq_len(n)) { 250s tmrPrB+ cat(i, "/", n, "- ETA:", getTimeAsString(ETA)) 250s tmrPrB+ flush.console() 250s tmrPrB+ Sys.sleep(sluggishness) 250s tmrPrB+ dt <- proc.time()[3] - t0 250s tmrPrB+ cat(" - elapsed:", getTimeAsString(dt), "\n") 250s tmrPrB+ ETA <- (n - i) * dt / i 250s tmrPrB+ } 250s 1 / 10 - ETA: calculating - elapsed: 00s 250s 2 / 10 - ETA: 00s - elapsed: 00s 250s 3 / 10 - ETA: 00s - elapsed: 00s 250s 4 / 10 - ETA: 00s - elapsed: 00s 250s 5 / 10 - ETA: 00s - elapsed: 00s 250s 6 / 10 - ETA: 00s - elapsed: 00s 251s 7 / 10 - ETA: 00s - elapsed: 00s 251s 8 / 10 - ETA: 00s - elapsed: 00s 251s 9 / 10 - ETA: 00s - elapsed: 00s 251s 10 / 10 - ETA: 00s - elapsed: 00s 251s > example(pbapply, run.dontrun = TRUE) 251s 251s pbpply> ## --- simple linear model simulation --- 251s pbpply> set.seed(1234) 251s 251s pbpply> n <- 200 251s 251s pbpply> x <- rnorm(n) 251s 251s pbpply> y <- rnorm(n, crossprod(t(model.matrix(~ x)), c(0, 1)), sd = 0.5) 251s 251s pbpply> d <- data.frame(y, x) 251s 251s pbpply> ## model fitting and bootstrap 251s pbpply> mod <- lm(y ~ x, d) 251s 251s pbpply> ndat <- model.frame(mod) 251s 251s pbpply> B <- 100 251s 251s pbpply> bid <- sapply(1:B, function(i) sample(nrow(ndat), nrow(ndat), TRUE)) 251s 251s pbpply> fun <- function(z) { 251s pbpply+ if (missing(z)) 251s pbpply+ z <- sample(nrow(ndat), nrow(ndat), TRUE) 251s pbpply+ coef(lm(mod$call$formula, data=ndat[z,])) 251s pbpply+ } 251s 251s pbpply> ## standard '*apply' functions 251s pbpply> system.time(res1 <- lapply(1:B, function(i) fun(bid[,i]))) 251s user system elapsed 251s 0.082 0.000 0.082 251s 251s pbpply> system.time(res2 <- sapply(1:B, function(i) fun(bid[,i]))) 251s user system elapsed 251s 0.077 0.000 0.078 251s 251s pbpply> system.time(res3 <- apply(bid, 2, fun)) 251s user system elapsed 251s 0.075 0.000 0.075 251s 251s pbpply> system.time(res4 <- replicate(B, fun())) 251s user system elapsed 251s 0.079 0.000 0.079 251s 251s pbpply> ## 'pb*apply' functions 251s pbpply> ## try different settings: 251s pbpply> ## "none", "txt", "tk", "win", "timer" 251s pbpply> op <- pboptions(type = "timer") # default 251s 251s pbpply> system.time(res1pb <- pblapply(1:B, function(i) fun(bid[,i]))) 251s | | 0 % ~calculating |+ | 1 % ~00s |+ | 2 % ~00s |++ | 3 % ~00s |++ | 4 % ~00s |+++ | 5 % ~00s |+++ | 6 % ~00s |++++ | 7 % ~00s |++++ | 8 % ~00s |+++++ | 9 % ~00s |+++++ | 10% ~00s |++++++ | 11% ~00s |++++++ | 12% ~00s |+++++++ | 13% ~00s |+++++++ | 14% ~00s |++++++++ | 15% ~00s |++++++++ | 16% ~00s |+++++++++ | 17% ~00s |+++++++++ | 18% ~00s |++++++++++ | 19% ~00s |++++++++++ | 20% ~00s |+++++++++++ | 21% ~00s |+++++++++++ | 22% ~00s |++++++++++++ | 23% ~00s |++++++++++++ | 24% ~00s |+++++++++++++ | 25% ~00s |+++++++++++++ | 26% ~00s |++++++++++++++ | 27% ~00s |++++++++++++++ | 28% ~00s |+++++++++++++++ | 29% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++ | 31% ~00s |++++++++++++++++ | 32% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++ | 34% ~00s |++++++++++++++++++ | 35% ~00s |++++++++++++++++++ | 36% ~00s |+++++++++++++++++++ | 37% ~00s |+++++++++++++++++++ | 38% ~00s |++++++++++++++++++++ | 39% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++ | 41% ~00s |+++++++++++++++++++++ | 42% ~00s |++++++++++++++++++++++ | 43% ~00s |++++++++++++++++++++++ | 44% ~00s |+++++++++++++++++++++++ | 45% ~00s |+++++++++++++++++++++++ | 46% ~00s |++++++++++++++++++++++++ | 47% ~00s |++++++++++++++++++++++++ | 48% ~00s |+++++++++++++++++++++++++ | 49% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++ | 51% ~00s |++++++++++++++++++++++++++ | 52% ~00s |+++++++++++++++++++++++++++ | 53% ~00s |+++++++++++++++++++++++++++ | 54% ~00s |++++++++++++++++++++++++++++ | 55% ~00s |++++++++++++++++++++++++++++ | 56% ~00s |+++++++++++++++++++++++++++++ | 57% ~00s |+++++++++++++++++++++++++++++ | 58% ~00s |++++++++++++++++++++++++++++++ | 59% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++ | 61% ~00s |+++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++ | 63% ~00s |++++++++++++++++++++++++++++++++ | 64% ~00s |+++++++++++++++++++++++++++++++++ | 65% ~00s |+++++++++++++++++++++++++++++++++ | 66% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++ | 68% ~00s |+++++++++++++++++++++++++++++++++++ | 69% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++ | 71% ~00s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 73% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 77% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 79% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 251s user system elapsed 251s 0.099 0.001 0.106 251s 251s pbpply> pboptions(op) 251s 251s pbpply> pboptions(type = "txt") 251s 251s pbpply> system.time(res2pb <- pbsapply(1:B, function(i) fun(bid[,i]))) 251s | | | 0% | | | 1% | |+ | 2% | |++ | 3% | |++ | 4% | |++ | 5% | |+++ | 6% | |++++ | 7% | |++++ | 8% | |++++ | 9% | |+++++ | 10% | |++++++ | 11% | |++++++ | 12% | |++++++ | 13% | |+++++++ | 14% | |++++++++ | 15% | |++++++++ | 16% | |++++++++ | 17% | |+++++++++ | 18% | |++++++++++ | 19% | |++++++++++ | 20% | |++++++++++ | 21% | |+++++++++++ | 22% | |++++++++++++ | 23% | |++++++++++++ | 24% | |++++++++++++ | 25% | |+++++++++++++ | 26% | |++++++++++++++ | 27% | |++++++++++++++ | 28% | |++++++++++++++ | 29% | |+++++++++++++++ | 30% | |++++++++++++++++ | 31% | |++++++++++++++++ | 32% | |++++++++++++++++ | 33% | |+++++++++++++++++ | 34% | |++++++++++++++++++ | 35% | |++++++++++++++++++ | 36% | |++++++++++++++++++ | 37% | |+++++++++++++++++++ | 38% | |++++++++++++++++++++ | 39% | |++++++++++++++++++++ | 40% | |++++++++++++++++++++ | 41% | |+++++++++++++++++++++ | 42% | |++++++++++++++++++++++ | 43% | |++++++++++++++++++++++ | 44% | |++++++++++++++++++++++ | 45% | |+++++++++++++++++++++++ | 46% | |++++++++++++++++++++++++ | 47% | |++++++++++++++++++++++++ | 48% | |++++++++++++++++++++++++ | 49% | |+++++++++++++++++++++++++ | 50% | |++++++++++++++++++++++++++ | 51% | |++++++++++++++++++++++++++ | 52% | |++++++++++++++++++++++++++ | 53% | |+++++++++++++++++++++++++++ | 54% | |++++++++++++++++++++++++++++ | 55% | |++++++++++++++++++++++++++++ | 56% | |++++++++++++++++++++++++++++ | 57% | |+++++++++++++++++++++++++++++ | 58% | |++++++++++++++++++++++++++++++ | 59% | |++++++++++++++++++++++++++++++ | 60% | |++++++++++++++++++++++++++++++ | 61% | |+++++++++++++++++++++++++++++++ | 62% | |++++++++++++++++++++++++++++++++ | 63% | |++++++++++++++++++++++++++++++++ | 64% | |++++++++++++++++++++++++++++++++ | 65% | |+++++++++++++++++++++++++++++++++ | 66% | |++++++++++++++++++++++++++++++++++ | 67% | |++++++++++++++++++++++++++++++++++ | 68% | |++++++++++++++++++++++++++++++++++ | 69% | |+++++++++++++++++++++++++++++++++++ | 70% | |++++++++++++++++++++++++++++++++++++ | 71% | |++++++++++++++++++++++++++++++++++++ | 72% | |++++++++++++++++++++++++++++++++++++ | 73% | |+++++++++++++++++++++++++++++++++++++ | 74% | |++++++++++++++++++++++++++++++++++++++ | 75% | |++++++++++++++++++++++++++++++++++++++ | 76% | |++++++++++++++++++++++++++++++++++++++ | 77% | |+++++++++++++++++++++++++++++++++++++++ | 78% | |++++++++++++++++++++++++++++++++++++++++ | 79% | |++++++++++++++++++++++++++++++++++++++++ | 80% | |++++++++++++++++++++++++++++++++++++++++ | 81% | |+++++++++++++++++++++++++++++++++++++++++ | 82% | |++++++++++++++++++++++++++++++++++++++++++ | 83% | |++++++++++++++++++++++++++++++++++++++++++ | 84% | |++++++++++++++++++++++++++++++++++++++++++ | 85% | |+++++++++++++++++++++++++++++++++++++++++++ | 86% | |++++++++++++++++++++++++++++++++++++++++++++ | 87% | |++++++++++++++++++++++++++++++++++++++++++++ | 88% | |++++++++++++++++++++++++++++++++++++++++++++ | 89% | |+++++++++++++++++++++++++++++++++++++++++++++ | 90% | |++++++++++++++++++++++++++++++++++++++++++++++ | 91% | |++++++++++++++++++++++++++++++++++++++++++++++ | 92% | |++++++++++++++++++++++++++++++++++++++++++++++ | 93% | |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% | |++++++++++++++++++++++++++++++++++++++++++++++++ | 95% | |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% | |++++++++++++++++++++++++++++++++++++++++++++++++ | 97% | |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% | |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% | |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% 251s user system elapsed 251s 0.096 0.002 0.104 251s 251s pbpply> pboptions(op) 251s 251s pbpply> pboptions(type = "txt", style = 1, char = "=") 251s 251s pbpply> system.time(res3pb <- pbapply(bid, 2, fun)) 251s ================================================== 251s user system elapsed 251s 0.087 0.000 0.090 251s 251s pbpply> pboptions(op) 251s 251s pbpply> pboptions(type = "txt", char = ":") 251s 251s pbpply> system.time(res4pb <- pbreplicate(B, fun())) 252s | | | 0% | | | 1% | |: | 2% | |:: | 3% | |:: | 4% | |:: | 5% | |::: | 6% | |:::: | 7% | |:::: | 8% | |:::: | 9% | |::::: | 10% | |:::::: | 11% | |:::::: | 12% | |:::::: | 13% | |::::::: | 14% | |:::::::: | 15% | |:::::::: | 16% | |:::::::: | 17% | |::::::::: | 18% | |:::::::::: | 19% | |:::::::::: | 20% | |:::::::::: | 21% | |::::::::::: | 22% | |:::::::::::: | 23% | |:::::::::::: | 24% | |:::::::::::: | 25% | |::::::::::::: | 26% | |:::::::::::::: | 27% | |:::::::::::::: | 28% | |:::::::::::::: | 29% | |::::::::::::::: | 30% | |:::::::::::::::: | 31% | |:::::::::::::::: | 32% | |:::::::::::::::: | 33% | |::::::::::::::::: | 34% | |:::::::::::::::::: | 35% | |:::::::::::::::::: | 36% | |:::::::::::::::::: | 37% | |::::::::::::::::::: | 38% | |:::::::::::::::::::: | 39% | |:::::::::::::::::::: | 40% | |:::::::::::::::::::: | 41% | |::::::::::::::::::::: | 42% | |:::::::::::::::::::::: | 43% | |:::::::::::::::::::::: | 44% | |:::::::::::::::::::::: | 45% | |::::::::::::::::::::::: | 46% | |:::::::::::::::::::::::: | 47% | |:::::::::::::::::::::::: | 48% | |:::::::::::::::::::::::: | 49% | |::::::::::::::::::::::::: | 50% | |:::::::::::::::::::::::::: | 51% | |:::::::::::::::::::::::::: | 52% | |:::::::::::::::::::::::::: | 53% | |::::::::::::::::::::::::::: | 54% | |:::::::::::::::::::::::::::: | 55% | |:::::::::::::::::::::::::::: | 56% | |:::::::::::::::::::::::::::: | 57% | |::::::::::::::::::::::::::::: | 58% | |:::::::::::::::::::::::::::::: | 59% | |:::::::::::::::::::::::::::::: | 60% | |:::::::::::::::::::::::::::::: | 61% | |::::::::::::::::::::::::::::::: | 62% | |:::::::::::::::::::::::::::::::: | 63% | |:::::::::::::::::::::::::::::::: | 64% | |:::::::::::::::::::::::::::::::: | 65% | |::::::::::::::::::::::::::::::::: | 66% | |:::::::::::::::::::::::::::::::::: | 67% | |:::::::::::::::::::::::::::::::::: | 68% | |:::::::::::::::::::::::::::::::::: | 69% | |::::::::::::::::::::::::::::::::::: | 70% | |:::::::::::::::::::::::::::::::::::: | 71% | |:::::::::::::::::::::::::::::::::::: | 72% | |:::::::::::::::::::::::::::::::::::: | 73% | |::::::::::::::::::::::::::::::::::::: | 74% | |:::::::::::::::::::::::::::::::::::::: | 75% | |:::::::::::::::::::::::::::::::::::::: | 76% | |:::::::::::::::::::::::::::::::::::::: | 77% | |::::::::::::::::::::::::::::::::::::::: | 78% | |:::::::::::::::::::::::::::::::::::::::: | 79% | |:::::::::::::::::::::::::::::::::::::::: | 80% | |:::::::::::::::::::::::::::::::::::::::: | 81% | |::::::::::::::::::::::::::::::::::::::::: | 82% | |:::::::::::::::::::::::::::::::::::::::::: | 83% | |:::::::::::::::::::::::::::::::::::::::::: | 84% | |:::::::::::::::::::::::::::::::::::::::::: | 85% | |::::::::::::::::::::::::::::::::::::::::::: | 86% | |:::::::::::::::::::::::::::::::::::::::::::: | 87% | |:::::::::::::::::::::::::::::::::::::::::::: | 88% | |:::::::::::::::::::::::::::::::::::::::::::: | 89% | |::::::::::::::::::::::::::::::::::::::::::::: | 90% | |:::::::::::::::::::::::::::::::::::::::::::::: | 91% | |:::::::::::::::::::::::::::::::::::::::::::::: | 92% | |:::::::::::::::::::::::::::::::::::::::::::::: | 93% | |::::::::::::::::::::::::::::::::::::::::::::::: | 94% | |:::::::::::::::::::::::::::::::::::::::::::::::: | 95% | |:::::::::::::::::::::::::::::::::::::::::::::::: | 96% | |:::::::::::::::::::::::::::::::::::::::::::::::: | 97% | |::::::::::::::::::::::::::::::::::::::::::::::::: | 98% | |::::::::::::::::::::::::::::::::::::::::::::::::::| 99% | |::::::::::::::::::::::::::::::::::::::::::::::::::| 100% 252s user system elapsed 252s 0.090 0.011 0.106 252s 252s pbpply> pboptions(op) 252s 252s pbpply> ## parallel evaluation using the parallel package 252s pbpply> ## (n = 2000 and B = 1000 will give visible timing differences) 252s pbpply> 252s pbpply> library(parallel) 252s 252s pbpply> cl <- makeCluster(2L) 252s 252s pbpply> clusterExport(cl, c("fun", "mod", "ndat", "bid")) 252s 252s pbpply> ## parallel with no progress bar: snow type cluster 252s pbpply> ## (RNG is set in the main process to define the object bid) 252s pbpply> system.time(res1cl <- parLapply(cl = cl, 1:B, function(i) fun(bid[,i]))) 252s user system elapsed 252s 0.003 0.000 0.124 252s 252s pbpply> system.time(res2cl <- parSapply(cl = cl, 1:B, function(i) fun(bid[,i]))) 252s user system elapsed 252s 0.003 0.001 0.047 252s 252s pbpply> system.time(res3cl <- parApply(cl, bid, 2, fun)) 252s user system elapsed 252s 0.003 0.000 0.046 252s 252s pbpply> ## parallel with progress bar: snow type cluster 252s pbpply> ## (RNG is set in the main process to define the object bid) 252s pbpply> system.time(res1pbcl <- pblapply(1:B, function(i) fun(bid[,i]), cl = cl)) 255s | | 0 % ~calculating |+ | 2 % ~00s |++ | 4 % ~01s |+++ | 6 % ~02s |++++ | 8 % ~02s |+++++ | 10% ~02s |++++++ | 12% ~02s |+++++++ | 14% ~02s |++++++++ | 16% ~02s |+++++++++ | 18% ~02s |++++++++++ | 20% ~02s |+++++++++++ | 22% ~02s |++++++++++++ | 24% ~02s |+++++++++++++ | 26% ~02s |++++++++++++++ | 28% ~02s |+++++++++++++++ | 30% ~02s |++++++++++++++++ | 32% ~02s |+++++++++++++++++ | 34% ~02s |++++++++++++++++++ | 36% ~01s |+++++++++++++++++++ | 38% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++ | 42% ~01s |++++++++++++++++++++++ | 44% ~01s |+++++++++++++++++++++++ | 46% ~01s |++++++++++++++++++++++++ | 48% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++ | 52% ~01s |+++++++++++++++++++++++++++ | 54% ~01s |++++++++++++++++++++++++++++ | 56% ~01s |+++++++++++++++++++++++++++++ | 58% ~01s |++++++++++++++++++++++++++++++ | 60% ~01s |+++++++++++++++++++++++++++++++ | 62% ~01s |++++++++++++++++++++++++++++++++ | 64% ~01s |+++++++++++++++++++++++++++++++++ | 66% ~01s |++++++++++++++++++++++++++++++++++ | 68% ~01s |+++++++++++++++++++++++++++++++++++ | 70% ~01s |++++++++++++++++++++++++++++++++++++ | 72% ~01s |+++++++++++++++++++++++++++++++++++++ | 74% ~01s |++++++++++++++++++++++++++++++++++++++ | 76% ~01s |+++++++++++++++++++++++++++++++++++++++ | 78% ~01s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02s 255s user system elapsed 255s 0.120 0.022 2.312 255s 255s pbpply> system.time(res2pbcl <- pbsapply(1:B, function(i) fun(bid[,i]), cl = cl)) 257s | | 0 % ~calculating |+ | 2 % ~02s |++ | 4 % ~02s |+++ | 6 % ~02s |++++ | 8 % ~02s |+++++ | 10% ~02s |++++++ | 12% ~02s |+++++++ | 14% ~02s |++++++++ | 16% ~02s |+++++++++ | 18% ~02s |++++++++++ | 20% ~02s |+++++++++++ | 22% ~02s |++++++++++++ | 24% ~02s |+++++++++++++ | 26% ~02s |++++++++++++++ | 28% ~02s |+++++++++++++++ | 30% ~02s |++++++++++++++++ | 32% ~02s |+++++++++++++++++ | 34% ~02s |++++++++++++++++++ | 36% ~02s |+++++++++++++++++++ | 38% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++ | 42% ~01s |++++++++++++++++++++++ | 44% ~01s |+++++++++++++++++++++++ | 46% ~01s |++++++++++++++++++++++++ | 48% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++ | 52% ~01s |+++++++++++++++++++++++++++ | 54% ~01s |++++++++++++++++++++++++++++ | 56% ~01s |+++++++++++++++++++++++++++++ | 58% ~01s |++++++++++++++++++++++++++++++ | 60% ~01s |+++++++++++++++++++++++++++++++ | 62% ~01s |++++++++++++++++++++++++++++++++ | 64% ~01s |+++++++++++++++++++++++++++++++++ | 66% ~01s |++++++++++++++++++++++++++++++++++ | 68% ~01s |+++++++++++++++++++++++++++++++++++ | 70% ~01s |++++++++++++++++++++++++++++++++++++ | 72% ~01s |+++++++++++++++++++++++++++++++++++++ | 74% ~01s |++++++++++++++++++++++++++++++++++++++ | 76% ~01s |+++++++++++++++++++++++++++++++++++++++ | 78% ~01s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02s 257s user system elapsed 257s 0.120 0.025 2.445 257s 257s pbpply> ## (RNG needs to be set when not using bid) 257s pbpply> parallel::clusterSetRNGStream(cl, iseed = 0L) 257s 257s pbpply> system.time(res4pbcl <- pbreplicate(B, fun(), cl = cl)) 257s | | 0 % ~calculating |+ | 2 % ~00s |++ | 4 % ~00s |+++ | 6 % ~00s |++++ | 8 % ~00s |+++++ | 10% ~00s |++++++ | 12% ~00s |+++++++ | 14% ~00s |++++++++ | 16% ~00s |+++++++++ | 18% ~00s |++++++++++ | 20% ~00s |+++++++++++ | 22% ~00s |++++++++++++ | 24% ~00s |+++++++++++++ | 26% ~00s |++++++++++++++ | 28% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++ | 32% ~00s |+++++++++++++++++ | 34% ~00s |++++++++++++++++++ | 36% ~00s |+++++++++++++++++++ | 38% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++ | 42% ~00s |++++++++++++++++++++++ | 44% ~00s |+++++++++++++++++++++++ | 46% ~00s |++++++++++++++++++++++++ | 48% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++ | 52% ~00s |+++++++++++++++++++++++++++ | 54% ~00s |++++++++++++++++++++++++++++ | 56% ~00s |+++++++++++++++++++++++++++++ | 58% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++ | 64% ~00s |+++++++++++++++++++++++++++++++++ | 66% ~00s |++++++++++++++++++++++++++++++++++ | 68% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 257s user system elapsed 257s 0.041 0.000 0.110 257s 257s pbpply> system.time(res3pbcl <- pbapply(bid, 2, fun, cl = cl)) 259s | | 0 % ~calculating |+ | 2 % ~02s |++ | 4 % ~02s |+++ | 6 % ~02s |++++ | 8 % ~02s |+++++ | 10% ~02s |++++++ | 12% ~02s |+++++++ | 14% ~02s |++++++++ | 16% ~02s |+++++++++ | 18% ~02s |++++++++++ | 20% ~01s |+++++++++++ | 22% ~01s |++++++++++++ | 24% ~01s |+++++++++++++ | 26% ~01s |++++++++++++++ | 28% ~01s |+++++++++++++++ | 30% ~01s |++++++++++++++++ | 32% ~01s |+++++++++++++++++ | 34% ~01s |++++++++++++++++++ | 36% ~01s |+++++++++++++++++++ | 38% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++ | 42% ~01s |++++++++++++++++++++++ | 44% ~01s |+++++++++++++++++++++++ | 46% ~01s |++++++++++++++++++++++++ | 48% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++ | 52% ~01s |+++++++++++++++++++++++++++ | 54% ~01s |++++++++++++++++++++++++++++ | 56% ~01s |+++++++++++++++++++++++++++++ | 58% ~01s |++++++++++++++++++++++++++++++ | 60% ~01s |+++++++++++++++++++++++++++++++ | 62% ~01s |++++++++++++++++++++++++++++++++ | 64% ~01s |+++++++++++++++++++++++++++++++++ | 66% ~01s |++++++++++++++++++++++++++++++++++ | 68% ~01s |+++++++++++++++++++++++++++++++++++ | 70% ~01s |++++++++++++++++++++++++++++++++++++ | 72% ~01s |+++++++++++++++++++++++++++++++++++++ | 74% ~01s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02s 259s user system elapsed 259s 0.155 0.013 2.036 259s 259s pbpply> stopCluster(cl) 259s 259s pbpply> if (.Platform$OS.type != "windows") { 259s pbpply+ ## parallel with no progress bar: multicore type forking 259s pbpply+ ## (mc.set.seed = TRUE in parallel::mclapply by default) 259s pbpply+ system.time(res2mc <- mclapply(1:B, function(i) fun(bid[,i]), mc.cores = 2L)) 259s pbpply+ ## parallel with progress bar: multicore type forking 259s pbpply+ ## (mc.set.seed = TRUE in parallel::mclapply by default) 259s pbpply+ system.time(res1pbmc <- pblapply(1:B, function(i) fun(bid[,i]), cl = 2L)) 259s pbpply+ system.time(res2pbmc <- pbsapply(1:B, function(i) fun(bid[,i]), cl = 2L)) 259s pbpply+ system.time(res4pbmc <- pbreplicate(B, fun(), cl = 2L)) 259s pbpply+ } 261s | | 0 % ~calculating |+ | 2 % ~01s |++ | 4 % ~01s |+++ | 6 % ~01s |++++ | 8 % ~01s |+++++ | 10% ~01s |++++++ | 12% ~01s |+++++++ | 14% ~01s |++++++++ | 16% ~01s |+++++++++ | 18% ~01s |++++++++++ | 20% ~01s |+++++++++++ | 22% ~01s |++++++++++++ | 24% ~01s |+++++++++++++ | 26% ~01s |++++++++++++++ | 28% ~01s |+++++++++++++++ | 30% ~01s |++++++++++++++++ | 32% ~01s |+++++++++++++++++ | 34% ~01s |++++++++++++++++++ | 36% ~01s |+++++++++++++++++++ | 38% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++ | 42% ~01s |++++++++++++++++++++++ | 44% ~01s |+++++++++++++++++++++++ | 46% ~01s |++++++++++++++++++++++++ | 48% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++ | 52% ~01s |+++++++++++++++++++++++++++ | 54% ~01s |++++++++++++++++++++++++++++ | 56% ~01s |+++++++++++++++++++++++++++++ | 58% ~01s |++++++++++++++++++++++++++++++ | 60% ~01s |+++++++++++++++++++++++++++++++ | 62% ~01s |++++++++++++++++++++++++++++++++ | 64% ~01s |+++++++++++++++++++++++++++++++++ | 66% ~01s |++++++++++++++++++++++++++++++++++ | 68% ~01s |+++++++++++++++++++++++++++++++++++ | 70% ~01s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s 263s | | 0 % ~calculating |+ | 2 % ~05s |++ | 4 % ~02s |+++ | 6 % ~02s |++++ | 8 % ~01s |+++++ | 10% ~01s |++++++ | 12% ~01s |+++++++ | 14% ~01s |++++++++ | 16% ~01s |+++++++++ | 18% ~01s |++++++++++ | 20% ~01s |+++++++++++ | 22% ~01s |++++++++++++ | 24% ~01s |+++++++++++++ | 26% ~01s |++++++++++++++ | 28% ~01s |+++++++++++++++ | 30% ~01s |++++++++++++++++ | 32% ~01s |+++++++++++++++++ | 34% ~01s |++++++++++++++++++ | 36% ~01s |+++++++++++++++++++ | 38% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++ | 42% ~01s |++++++++++++++++++++++ | 44% ~01s |+++++++++++++++++++++++ | 46% ~01s |++++++++++++++++++++++++ | 48% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++ | 52% ~01s |+++++++++++++++++++++++++++ | 54% ~01s |++++++++++++++++++++++++++++ | 56% ~01s |+++++++++++++++++++++++++++++ | 58% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++ | 64% ~00s |+++++++++++++++++++++++++++++++++ | 66% ~00s |++++++++++++++++++++++++++++++++++ | 68% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s 264s | | 0 % ~calculating |+ | 2 % ~01s |++ | 4 % ~01s |+++ | 6 % ~01s |++++ | 8 % ~01s |+++++ | 10% ~01s |++++++ | 12% ~01s |+++++++ | 14% ~01s |++++++++ | 16% ~01s |+++++++++ | 18% ~01s |++++++++++ | 20% ~01s |+++++++++++ | 22% ~02s |++++++++++++ | 24% ~02s |+++++++++++++ | 26% ~02s |++++++++++++++ | 28% ~02s |+++++++++++++++ | 30% ~02s |++++++++++++++++ | 32% ~02s |+++++++++++++++++ | 34% ~01s |++++++++++++++++++ | 36% ~01s |+++++++++++++++++++ | 38% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++ | 42% ~01s |++++++++++++++++++++++ | 44% ~01s |+++++++++++++++++++++++ | 46% ~01s |++++++++++++++++++++++++ | 48% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++ | 52% ~01s |+++++++++++++++++++++++++++ | 54% ~01s |++++++++++++++++++++++++++++ | 56% ~01s |+++++++++++++++++++++++++++++ | 58% ~01s |++++++++++++++++++++++++++++++ | 60% ~01s |+++++++++++++++++++++++++++++++ | 62% ~01s |++++++++++++++++++++++++++++++++ | 64% ~01s |+++++++++++++++++++++++++++++++++ | 66% ~01s |++++++++++++++++++++++++++++++++++ | 68% ~01s |+++++++++++++++++++++++++++++++++++ | 70% ~01s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02s 264s user system elapsed 264s 0.643 2.119 1.635 264s 264s pbpply> ## --- Examples taken from standard '*apply' functions --- 264s pbpply> 264s pbpply> ## --- sapply, lapply, and replicate --- 264s pbpply> 264s pbpply> require(stats); require(graphics) 264s 264s pbpply> x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE)) 264s 264s pbpply> # compute the list mean for each list element 264s pbpply> pblapply(x, mean) 264s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 264s $a 264s [1] 5.5 264s 264s $beta 264s [1] 4.535125 264s 264s $logic 264s [1] 0.5 264s 264s 264s pbpply> pbwalk(x, mean) 264s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 264s 264s pbpply> # median and quartiles for each list element 264s pbpply> pblapply(x, quantile, probs = 1:3/4) 264s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 264s $a 264s 25% 50% 75% 264s 3.25 5.50 7.75 264s 264s $beta 264s 25% 50% 75% 264s 0.2516074 1.0000000 5.0536690 264s 264s $logic 264s 25% 50% 75% 264s 0.0 0.5 1.0 264s 264s 264s pbpply> pbsapply(x, quantile) 264s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 264s a beta logic 264s 0% 1.00 0.04978707 0.0 264s 25% 3.25 0.25160736 0.0 264s 50% 5.50 1.00000000 0.5 264s 75% 7.75 5.05366896 1.0 264s 100% 10.00 20.08553692 1.0 264s 264s pbpply> i39 <- sapply(3:9, seq) # list of vectors 264s 264s pbpply> pbsapply(i39, fivenum) 264s | | 0 % ~calculating |++++++++ | 14% ~00s |+++++++++++++++ | 29% ~00s |++++++++++++++++++++++ | 43% ~00s |+++++++++++++++++++++++++++++ | 57% ~00s |++++++++++++++++++++++++++++++++++++ | 71% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 264s [,1] [,2] [,3] [,4] [,5] [,6] [,7] 265s [1,] 1.0 1.0 1 1.0 1.0 1.0 1 265s [2,] 1.5 1.5 2 2.0 2.5 2.5 3 265s [3,] 2.0 2.5 3 3.5 4.0 4.5 5 265s [4,] 2.5 3.5 4 5.0 5.5 6.5 7 265s [5,] 3.0 4.0 5 6.0 7.0 8.0 9 265s 265s pbpply> pbvapply(i39, fivenum, 265s pbpply+ c(Min. = 0, "1st Qu." = 0, Median = 0, "3rd Qu." = 0, Max. = 0)) 265s | | 0 % ~calculating |++++++++ | 14% ~00s |+++++++++++++++ | 29% ~00s |++++++++++++++++++++++ | 43% ~00s |+++++++++++++++++++++++++++++ | 57% ~00s |++++++++++++++++++++++++++++++++++++ | 71% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [,1] [,2] [,3] [,4] [,5] [,6] [,7] 265s Min. 1.0 1.0 1 1.0 1.0 1.0 1 265s 1st Qu. 1.5 1.5 2 2.0 2.5 2.5 3 265s Median 2.0 2.5 3 3.5 4.0 4.5 5 265s 3rd Qu. 2.5 3.5 4 5.0 5.5 6.5 7 265s Max. 3.0 4.0 5 6.0 7.0 8.0 9 265s 265s pbpply> ## sapply(*, "array") -- artificial example 265s pbpply> (v <- structure(10*(5:8), names = LETTERS[1:4])) 265s A B C D 265s 50 60 70 80 265s 265s pbpply> f2 <- function(x, y) outer(rep(x, length.out = 3), y) 265s 265s pbpply> (a2 <- pbsapply(v, f2, y = 2*(1:5), simplify = "array")) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s , , A 265s 265s [,1] [,2] [,3] [,4] [,5] 265s [1,] 100 200 300 400 500 265s [2,] 100 200 300 400 500 265s [3,] 100 200 300 400 500 265s 265s , , B 265s 265s [,1] [,2] [,3] [,4] [,5] 265s [1,] 120 240 360 480 600 265s [2,] 120 240 360 480 600 265s [3,] 120 240 360 480 600 265s 265s , , C 265s 265s [,1] [,2] [,3] [,4] [,5] 265s [1,] 140 280 420 560 700 265s [2,] 140 280 420 560 700 265s [3,] 140 280 420 560 700 265s 265s , , D 265s 265s [,1] [,2] [,3] [,4] [,5] 265s [1,] 160 320 480 640 800 265s [2,] 160 320 480 640 800 265s [3,] 160 320 480 640 800 265s 265s 265s pbpply> a.2 <- pbvapply(v, f2, outer(1:3, 1:5), y = 2*(1:5)) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> stopifnot(dim(a2) == c(3,5,4), all.equal(a2, a.2), 265s pbpply+ identical(dimnames(a2), list(NULL,NULL,LETTERS[1:4]))) 265s 265s pbpply> summary(pbreplicate(100, mean(rexp(10)))) 265s | | 0 % ~calculating |+ | 1 % ~00s |+ | 2 % ~00s |++ | 3 % ~00s |++ | 4 % ~00s |+++ | 5 % ~00s |+++ | 6 % ~00s |++++ | 7 % ~00s |++++ | 8 % ~00s |+++++ | 9 % ~00s |+++++ | 10% ~00s |++++++ | 11% ~00s |++++++ | 12% ~00s |+++++++ | 13% ~00s |+++++++ | 14% ~00s |++++++++ | 15% ~00s |++++++++ | 16% ~00s |+++++++++ | 17% ~00s |+++++++++ | 18% ~00s |++++++++++ | 19% ~00s |++++++++++ | 20% ~00s |+++++++++++ | 21% ~00s |+++++++++++ | 22% ~00s |++++++++++++ | 23% ~00s |++++++++++++ | 24% ~00s |+++++++++++++ | 25% ~00s |+++++++++++++ | 26% ~00s |++++++++++++++ | 27% ~00s |++++++++++++++ | 28% ~00s |+++++++++++++++ | 29% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++ | 31% ~00s |++++++++++++++++ | 32% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++ | 34% ~00s |++++++++++++++++++ | 35% ~00s |++++++++++++++++++ | 36% ~00s |+++++++++++++++++++ | 37% ~00s |+++++++++++++++++++ | 38% ~00s |++++++++++++++++++++ | 39% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++ | 41% ~00s |+++++++++++++++++++++ | 42% ~00s |++++++++++++++++++++++ | 43% ~00s |++++++++++++++++++++++ | 44% ~00s |+++++++++++++++++++++++ | 45% ~00s |+++++++++++++++++++++++ | 46% ~00s |++++++++++++++++++++++++ | 47% ~00s |++++++++++++++++++++++++ | 48% ~00s |+++++++++++++++++++++++++ | 49% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++ | 51% ~00s |++++++++++++++++++++++++++ | 52% ~00s |+++++++++++++++++++++++++++ | 53% ~00s |+++++++++++++++++++++++++++ | 54% ~00s |++++++++++++++++++++++++++++ | 55% ~00s |++++++++++++++++++++++++++++ | 56% ~00s |+++++++++++++++++++++++++++++ | 57% ~00s |+++++++++++++++++++++++++++++ | 58% ~00s |++++++++++++++++++++++++++++++ | 59% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++ | 61% ~00s |+++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++ | 63% ~00s |++++++++++++++++++++++++++++++++ | 64% ~00s |+++++++++++++++++++++++++++++++++ | 65% ~00s |+++++++++++++++++++++++++++++++++ | 66% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++ | 68% ~00s |+++++++++++++++++++++++++++++++++++ | 69% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++ | 71% ~00s |++++++++++++++++++++++++++++++++++++ | 72% ~00s |+++++++++++++++++++++++++++++++++++++ | 73% ~00s |+++++++++++++++++++++++++++++++++++++ | 74% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++ | 76% ~00s |+++++++++++++++++++++++++++++++++++++++ | 77% ~00s |+++++++++++++++++++++++++++++++++++++++ | 78% ~00s |++++++++++++++++++++++++++++++++++++++++ | 79% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s |+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s |+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s |++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 0.4786 0.7273 0.9091 0.9666 1.1917 2.3021 265s 265s pbpply> ## use of replicate() with parameters: 265s pbpply> foo <- function(x = 1, y = 2) c(x, y) 265s 265s pbpply> # does not work: bar <- function(n, ...) replicate(n, foo(...)) 265s pbpply> bar <- function(n, x) pbreplicate(n, foo(x = x)) 265s 265s pbpply> bar(5, x = 3) 265s | | 0 % ~calculating |++++++++++ | 20% ~00s |++++++++++++++++++++ | 40% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [,1] [,2] [,3] [,4] [,5] 265s [1,] 3 3 3 3 3 265s [2,] 2 2 2 2 2 265s 265s pbpply> ## --- apply --- 265s pbpply> 265s pbpply> ## Compute row and column sums for a matrix: 265s pbpply> x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 265s 265s pbpply> dimnames(x)[[1]] <- letters[1:8] 265s 265s pbpply> pbapply(x, 2, mean, trim = .2) 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s x1 x2 265s 3 3 265s 265s pbpply> col.sums <- pbapply(x, 2, sum) 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> row.sums <- pbapply(x, 1, sum) 265s | | 0 % ~calculating |+++++++ | 12% ~00s |+++++++++++++ | 25% ~00s |+++++++++++++++++++ | 38% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> rbind(cbind(x, Rtot = row.sums), Ctot = c(col.sums, sum(col.sums))) 265s x1 x2 Rtot 265s a 3 4 7 265s b 3 3 6 265s c 3 2 5 265s d 3 1 4 265s e 3 2 5 265s f 3 3 6 265s g 3 4 7 265s h 3 5 8 265s Ctot 24 24 48 265s 265s pbpply> stopifnot( pbapply(x, 2, is.vector)) 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> ## Sort the columns of a matrix 265s pbpply> pbapply(x, 2, sort) 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s x1 x2 265s [1,] 3 1 265s [2,] 3 2 265s [3,] 3 2 265s [4,] 3 3 265s [5,] 3 3 265s [6,] 3 4 265s [7,] 3 4 265s [8,] 3 5 265s 265s pbpply> ## keeping named dimnames 265s pbpply> names(dimnames(x)) <- c("row", "col") 265s 265s pbpply> x3 <- array(x, dim = c(dim(x),3), 265s pbpply+ dimnames = c(dimnames(x), list(C = paste0("cop.",1:3)))) 265s 265s pbpply> identical(x, pbapply( x, 2, identity)) 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [1] TRUE 265s 265s pbpply> identical(x3, pbapply(x3, 2:3, identity)) 265s | | 0 % ~calculating |+++++++++ | 17% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [1] TRUE 265s 265s pbpply> ##- function with extra args: 265s pbpply> cave <- function(x, c1, c2) c(mean(x[c1]), mean(x[c2])) 265s 265s pbpply> pbapply(x, 1, cave, c1 = "x1", c2 = c("x1","x2")) 265s | | 0 % ~calculating |+++++++ | 12% ~00s |+++++++++++++ | 25% ~00s |+++++++++++++++++++ | 38% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s row 265s a b c d e f g h 265s [1,] 3.0 3 3.0 3 3.0 3 3.0 3 265s [2,] 3.5 3 2.5 2 2.5 3 3.5 4 265s 265s pbpply> ma <- matrix(c(1:4, 1, 6:8), nrow = 2) 265s 265s pbpply> ma 265s [,1] [,2] [,3] [,4] 265s [1,] 1 3 1 7 265s [2,] 2 4 6 8 265s 265s pbpply> pbapply(ma, 1, table) #--> a list of length 2 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s 265s 1 3 7 265s 2 1 1 265s 265s [[2]] 265s 265s 2 4 6 8 265s 1 1 1 1 265s 265s 265s pbpply> pbapply(ma, 1, stats::quantile) # 5 x n matrix with rownames 265s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [,1] [,2] 265s 0% 1 2.0 265s 25% 1 3.5 265s 50% 2 5.0 265s 75% 4 6.5 265s 100% 7 8.0 265s 265s pbpply> stopifnot(dim(ma) == dim(pbapply(ma, 1:2, sum))) 265s | | 0 % ~calculating |+++++++ | 12% ~00s |+++++++++++++ | 25% ~00s |+++++++++++++++++++ | 38% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++ | 62% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> ## Example with different lengths for each call 265s pbpply> z <- array(1:24, dim = 2:4) 265s 265s pbpply> zseq <- pbapply(z, 1:2, function(x) seq_len(max(x))) 265s | | 0 % ~calculating |+++++++++ | 17% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> zseq ## a 2 x 3 matrix 265s [,1] [,2] [,3] 265s [1,] integer,19 integer,21 integer,23 265s [2,] integer,20 integer,22 integer,24 265s 265s pbpply> typeof(zseq) ## list 265s [1] "list" 265s 265s pbpply> dim(zseq) ## 2 3 265s [1] 2 3 265s 265s pbpply> zseq[1,] 265s [[1]] 265s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 265s 265s [[2]] 265s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 265s 265s [[3]] 265s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 265s 265s 265s pbpply> pbapply(z, 3, function(x) seq_len(max(x))) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 1 2 3 4 5 6 265s 265s [[2]] 265s [1] 1 2 3 4 5 6 7 8 9 10 11 12 265s 265s [[3]] 265s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 265s 265s [[4]] 265s [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 265s 265s 265s pbpply> # a list without a dim attribute 265s pbpply> 265s pbpply> ## --- mapply and .mapply --- 265s pbpply> 265s pbpply> pbmapply(rep, 1:4, 4:1) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 1 1 1 1 265s 265s [[2]] 265s [1] 2 2 2 265s 265s [[3]] 265s [1] 3 3 265s 265s [[4]] 265s [1] 4 265s 265s 265s pbpply> pbmapply(rep, times = 1:4, x = 4:1) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 4 265s 265s [[2]] 265s [1] 3 3 265s 265s [[3]] 265s [1] 2 2 2 265s 265s [[4]] 265s [1] 1 1 1 1 265s 265s 265s pbpply> pbmapply(rep, times = 1:4, MoreArgs = list(x = 42)) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 42 265s 265s [[2]] 265s [1] 42 42 265s 265s [[3]] 265s [1] 42 42 42 265s 265s [[4]] 265s [1] 42 42 42 42 265s 265s 265s pbpply> pbmapply(function(x, y) seq_len(x) + y, 265s pbpply+ c(a = 1, b = 2, c = 3), # names from first 265s pbpply+ c(A = 10, B = 0, C = -10)) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $a 265s [1] 11 265s 265s $b 265s [1] 1 2 265s 265s $c 265s [1] -9 -8 -7 265s 265s 265s pbpply> word <- function(C, k) paste(rep.int(C, k), collapse = "") 265s 265s pbpply> utils::str(pbmapply(word, LETTERS[1:6], 6:1, SIMPLIFY = FALSE)) 265s | | 0 % ~calculating |+++++++++ | 17% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s List of 6 265s $ A: chr "AAAAAA" 265s $ B: chr "BBBBB" 265s $ C: chr "CCCC" 265s $ D: chr "DDD" 265s $ E: chr "EE" 265s $ F: chr "F" 265s 265s pbpply> pb.mapply(rep, 265s pbpply+ dots = list(1:4, 4:1), 265s pbpply+ MoreArgs = list()) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 1 1 1 1 265s 265s [[2]] 265s [1] 2 2 2 265s 265s [[3]] 265s [1] 3 3 265s 265s [[4]] 265s [1] 4 265s 265s 265s pbpply> pb.mapply(rep, 265s pbpply+ dots = list(times = 1:4, x = 4:1), 265s pbpply+ MoreArgs = list()) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 4 265s 265s [[2]] 265s [1] 3 3 265s 265s [[3]] 265s [1] 2 2 2 265s 265s [[4]] 265s [1] 1 1 1 1 265s 265s 265s pbpply> pb.mapply(rep, 265s pbpply+ dots = list(times = 1:4), 265s pbpply+ MoreArgs = list(x = 42)) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 42 265s 265s [[2]] 265s [1] 42 42 265s 265s [[3]] 265s [1] 42 42 42 265s 265s [[4]] 265s [1] 42 42 42 42 265s 265s 265s pbpply> pb.mapply(function(x, y) seq_len(x) + y, 265s pbpply+ dots = list(c(a = 1, b = 2, c = 3), # names from first 265s pbpply+ c(A = 10, B = 0, C = -10)), 265s pbpply+ MoreArgs = list()) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 11 265s 265s [[2]] 265s [1] 1 2 265s 265s [[3]] 265s [1] -9 -8 -7 265s 265s 265s pbpply> ## --- Map --- 265s pbpply> 265s pbpply> pbMap(`+`, 1, 1 : 3) ; 1 + 1:3 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [[1]] 265s [1] 2 265s 265s [[2]] 265s [1] 3 265s 265s [[3]] 265s [1] 4 265s 265s [1] 2 3 4 265s 265s pbpply> ## --- eapply --- 265s pbpply> 265s pbpply> env <- new.env(hash = FALSE) 265s 265s pbpply> env$a <- 1:10 265s 265s pbpply> env$beta <- exp(-3:3) 265s 265s pbpply> env$logic <- c(TRUE, FALSE, FALSE, TRUE) 265s 265s pbpply> pbeapply(env, mean) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $logic 265s [1] 0.5 265s 265s $beta 265s [1] 4.535125 265s 265s $a 265s [1] 5.5 265s 265s 265s pbpply> unlist(pbeapply(env, mean, USE.NAMES = FALSE)) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s [1] 0.500000 4.535125 5.500000 265s 265s pbpply> pbeapply(env, quantile, probs = 1:3/4) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $logic 265s 25% 50% 75% 265s 0.0 0.5 1.0 265s 265s $beta 265s 25% 50% 75% 265s 0.2516074 1.0000000 5.0536690 265s 265s $a 265s 25% 50% 75% 265s 3.25 5.50 7.75 265s 265s 265s pbpply> pbeapply(env, quantile) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $logic 265s 0% 25% 50% 75% 100% 265s 0.0 0.0 0.5 1.0 1.0 265s 265s $beta 265s 0% 25% 50% 75% 100% 265s 0.04978707 0.25160736 1.00000000 5.05366896 20.08553692 265s 265s $a 265s 0% 25% 50% 75% 100% 265s 1.00 3.25 5.50 7.75 10.00 265s 265s 265s pbpply> ## --- tapply --- 265s pbpply> 265s pbpply> require(stats) 265s 265s pbpply> groups <- as.factor(rbinom(32, n = 5, prob = 0.4)) 265s 265s pbpply> pbtapply(groups, groups, length) #- is almost the same as 265s | | 0 % ~calculating |++++++++++ | 20% ~00s |++++++++++++++++++++ | 40% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 10 11 13 14 18 265s 1 1 1 1 1 265s 265s pbpply> table(groups) 265s groups 265s 10 11 13 14 18 265s 1 1 1 1 1 265s 265s pbpply> ## contingency table from data.frame : array with named dimnames 265s pbpply> pbtapply(warpbreaks$breaks, warpbreaks[,-1], sum) 265s | | 0 % ~calculating |+++++++++ | 17% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s tension 265s wool L M H 265s A 401 216 221 265s B 254 259 169 265s 265s pbpply> pbtapply(warpbreaks$breaks, warpbreaks[, 3, drop = FALSE], sum) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s tension 265s L M H 265s 655 475 390 265s 265s pbpply> n <- 17; fac <- factor(rep_len(1:3, n), levels = 1:5) 265s 265s pbpply> table(fac) 265s fac 265s 1 2 3 4 5 265s 6 6 5 0 0 265s 265s pbpply> pbtapply(1:n, fac, sum) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 1 2 3 4 5 265s 51 57 45 NA NA 265s 265s pbpply> pbtapply(1:n, fac, sum, default = 0) # maybe more desirable 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 1 2 3 4 5 265s 51 57 45 0 0 265s 265s pbpply> pbtapply(1:n, fac, sum, simplify = FALSE) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $`1` 265s [1] 51 265s 265s $`2` 265s [1] 57 265s 265s $`3` 265s [1] 45 265s 265s $`4` 265s NULL 265s 265s $`5` 265s NULL 265s 265s 265s pbpply> pbtapply(1:n, fac, range) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $`1` 265s [1] 1 16 265s 265s $`2` 265s [1] 2 17 265s 265s $`3` 265s [1] 3 15 265s 265s $`4` 265s NULL 265s 265s $`5` 265s NULL 265s 265s 265s pbpply> pbtapply(1:n, fac, quantile) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s $`1` 265s 0% 25% 50% 75% 100% 265s 1.00 4.75 8.50 12.25 16.00 265s 265s $`2` 265s 0% 25% 50% 75% 100% 265s 2.00 5.75 9.50 13.25 17.00 265s 265s $`3` 265s 0% 25% 50% 75% 100% 265s 3 6 9 12 15 265s 265s $`4` 265s NULL 265s 265s $`5` 265s NULL 265s 265s 265s pbpply> pbtapply(1:n, fac, length) ## NA's 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 1 2 3 4 5 265s 6 6 5 NA NA 265s 265s pbpply> pbtapply(1:n, fac, length, default = 0) # == table(fac) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 1 2 3 4 5 265s 6 6 5 0 0 265s 265s pbpply> ## example of ... argument: find quarterly means 265s pbpply> pbtapply(presidents, cycle(presidents), mean, na.rm = TRUE) 265s | | 0 % ~calculating |+++++++++++++ | 25% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++ | 75% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 1 2 3 4 265s 58.44828 56.43333 57.22222 53.07143 265s 265s pbpply> ind <- list(c(1, 2, 2), c("A", "A", "B")) 265s 265s pbpply> table(ind) 265s ind.2 265s ind.1 A B 265s 1 1 0 265s 2 1 1 265s 265s pbpply> pbtapply(1:3, ind) #-> the split vector 265s [1] 1 2 4 265s 265s pbpply> pbtapply(1:3, ind, sum) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s A B 265s 1 1 NA 265s 2 2 3 265s 265s pbpply> ## Some assertions (not held by all patch propsals): 265s pbpply> nq <- names(quantile(1:5)) 265s 265s pbpply> stopifnot( 265s pbpply+ identical(pbtapply(1:3, ind), c(1L, 2L, 4L)), 265s pbpply+ identical(pbtapply(1:3, ind, sum), 265s pbpply+ matrix(c(1L, 2L, NA, 3L), 2, dimnames = list(c("1", "2"), c("A", "B")))), 265s pbpply+ identical(pbtapply(1:n, fac, quantile)[-1], 265s pbpply+ array(list(`2` = structure(c(2, 5.75, 9.5, 13.25, 17), .Names = nq), 265s pbpply+ `3` = structure(c(3, 6, 9, 12, 15), .Names = nq), 265s pbpply+ `4` = NULL, `5` = NULL), dim=4, dimnames=list(as.character(2:5))))) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> ## --- by --- 265s pbpply> 265s pbpply> pbby(warpbreaks[, 1:2], warpbreaks[,"tension"], summary) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s warpbreaks[, "tension"]: L 265s breaks wool 265s Min. :14.00 A:9 265s 1st Qu.:26.00 B:9 265s Median :29.50 265s Mean :36.39 265s 3rd Qu.:49.25 265s Max. :70.00 265s ------------------------------------------------------------ 265s warpbreaks[, "tension"]: M 265s breaks wool 265s Min. :12.00 A:9 265s 1st Qu.:18.25 B:9 265s Median :27.00 265s Mean :26.39 265s 3rd Qu.:33.75 265s Max. :42.00 265s ------------------------------------------------------------ 265s warpbreaks[, "tension"]: H 265s breaks wool 265s Min. :10.00 A:9 265s 1st Qu.:15.25 B:9 265s Median :20.50 265s Mean :21.67 265s 3rd Qu.:25.50 265s Max. :43.00 265s 265s pbpply> pbby(warpbreaks[, 1], warpbreaks[, -1], summary) 265s | | 0 % ~calculating |+++++++++ | 17% ~00s |+++++++++++++++++ | 33% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s wool: A 265s tension: L 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 25.00 26.00 51.00 44.56 54.00 70.00 265s ------------------------------------------------------------ 265s wool: B 265s tension: L 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 14.00 20.00 29.00 28.22 31.00 44.00 265s ------------------------------------------------------------ 265s wool: A 265s tension: M 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 12 18 21 24 30 36 265s ------------------------------------------------------------ 265s wool: B 265s tension: M 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 16.00 21.00 28.00 28.78 39.00 42.00 265s ------------------------------------------------------------ 265s wool: A 265s tension: H 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 10.00 18.00 24.00 24.56 28.00 43.00 265s ------------------------------------------------------------ 265s wool: B 265s tension: H 265s Min. 1st Qu. Median Mean 3rd Qu. Max. 265s 13.00 15.00 17.00 18.78 21.00 28.00 265s 265s pbpply> pbby(warpbreaks, warpbreaks[,"tension"], 265s pbpply+ function(x) lm(breaks ~ wool, data = x)) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s warpbreaks[, "tension"]: L 265s 265s Call: 265s lm(formula = breaks ~ wool, data = x) 265s 265s Coefficients: 265s (Intercept) woolB 265s 44.56 -16.33 265s 265s ------------------------------------------------------------ 265s warpbreaks[, "tension"]: M 265s 265s Call: 265s lm(formula = breaks ~ wool, data = x) 265s 265s Coefficients: 265s (Intercept) woolB 265s 24.000 4.778 265s 265s ------------------------------------------------------------ 265s warpbreaks[, "tension"]: H 265s 265s Call: 265s lm(formula = breaks ~ wool, data = x) 265s 265s Coefficients: 265s (Intercept) woolB 265s 24.556 -5.778 265s 265s 265s pbpply> tmp <- with(warpbreaks, 265s pbpply+ pbby(warpbreaks, tension, 265s pbpply+ function(x) lm(breaks ~ wool, data = x))) 265s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbpply> sapply(tmp, coef) 265s L M H 265s (Intercept) 44.55556 24.000000 24.555556 265s woolB -16.33333 4.777778 -5.777778 265s > example(pboptions, run.dontrun = TRUE) 265s 265s pbptns> ## increase sluggishness to admire the progress bar longer 265s pbptns> sluggishness <- 0.01 265s 265s pbptns> ## for loop 265s pbptns> fun1 <- function() { 265s pbptns+ pb <- startpb(0, 10) 265s pbptns+ on.exit(closepb(pb)) 265s pbptns+ for (i in 1:10) { 265s pbptns+ Sys.sleep(sluggishness) 265s pbptns+ setpb(pb, i) 265s pbptns+ } 265s pbptns+ invisible(NULL) 265s pbptns+ } 265s 265s pbptns> ## while loop 265s pbptns> fun2 <- function() { 265s pbptns+ pb <- startpb(0, 10-1) 265s pbptns+ on.exit(closepb(pb)) 265s pbptns+ i <- 1 265s pbptns+ while (i < 10) { 265s pbptns+ Sys.sleep(sluggishness) 265s pbptns+ setpb(pb, i) 265s pbptns+ i <- i + 1 265s pbptns+ } 265s pbptns+ invisible(NULL) 265s pbptns+ } 265s 265s pbptns> ## using original settings 265s pbptns> fun1() 265s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbptns> ## resetting pboptions 265s pbptns> opb <- pboptions(style = 1, char = ">") 265s 265s pbptns> ## check new settings 265s pbptns> getOption("pboptions") 265s $type 265s [1] "timer" 265s 265s $char 265s [1] ">" 265s 265s $txt.width 265s [1] 50 265s 265s $gui.width 265s [1] 300 265s 265s $style 265s [1] 1 265s 265s $initial 265s [1] 0 265s 265s $title 265s [1] "R progress bar" 265s 265s $label 265s [1] "" 265s 265s $nout 265s [1] 100 265s 265s $min_time 265s [1] 0 265s 265s $use_lb 265s [1] FALSE 265s 265s 265s pbptns> ## running again with new settings 265s pbptns> fun2() 265s | | 0 % elapsed=00s |>>>>>> | 11% elapsed=00s, remaining~00s |>>>>>>>>>>>> | 22% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>> | 33% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>>>>>>>> | 44% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 56% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 67% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 78% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 89% elapsed=00s, remaining~00s |>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>| 100% elapsed=00s, remaining~00s 265s 265s pbptns> ## resetting original 265s pbptns> pboptions(opb) 265s 265s pbptns> ## check reset 265s pbptns> getOption("pboptions") 265s $type 265s [1] "timer" 265s 265s $char 265s [1] "+" 265s 265s $txt.width 265s [1] 50 265s 265s $gui.width 265s [1] 300 265s 265s $style 265s [1] 3 265s 265s $initial 265s [1] 0 265s 265s $title 265s [1] "R progress bar" 265s 265s $label 265s [1] "" 265s 265s $nout 265s [1] 100 265s 265s $min_time 265s [1] 0 265s 265s $use_lb 265s [1] FALSE 265s 265s 265s pbptns> fun1() 265s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 265s 265s pbptns> ## dealing with nested progress bars 265s pbptns> ## when only one the 1st one is needed 265s pbptns> f <- function(x) Sys.sleep(sluggishness) 265s 265s pbptns> g <- function(x) pblapply(1:10, f) 265s 265s pbptns> tmp <- lapply(1:10, g) # undesirable 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s | | 0 % ~calculating |+++++ | 10% ~00s |++++++++++ | 20% ~00s |+++++++++++++++ | 30% ~00s |++++++++++++++++++++ | 40% ~00s |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 266s 266s pbptns> ## here is the desirable solution 266s pbptns> h <- function(x) { 266s pbptns+ opb <- pboptions(type="none") 266s pbptns+ on.exit(pboptions(opb)) 266s pbptns+ pblapply(1:10, f) 266s pbptns+ } 266s 266s pbptns> tmp <- pblapply(1:10, h) 267s | | 0 % ~calculating |+++++ | 10% ~01s |++++++++++ | 20% ~01s |+++++++++++++++ | 30% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s 267s 267s pbptns> ## list available pb types 267s pbptns> pbtypes() 267s [1] "timer" "txt" "tk" "none" "shiny" 267s > 267s > ## check potential changes in formal arguments 267s > check_args <- function(fun1, fun2, cl=TRUE) { 267s + f1 <- formals(fun1) 267s + f2 <- formals(fun2) 267s + args1 <- names(f1) 267s + args2cl <- names(f2) 267s + args2 <- if (cl) 267s + args2cl[seq_len(length(args2cl)-1L)] else args2cl 267s + vals1 <- unname(f1) 267s + vals2cl <- unname(f2) 267s + vals2 <- if (cl) 267s + vals2cl[seq_len(length(vals2cl)-1L)] else vals2cl 267s + if (length(args1) != length(args2)) { 267s + msg <- c("Number of arguments is different:\n - fun1 [", 267s + length(args1), "]: ", paste0(args1, collapse=", "), 267s + "\n - fun2 [", 267s + length(args2), "]: ", paste0(args2, collapse=", ")) 267s + stop(paste0(msg, collapse="")) 267s + } 267s + if (!all(args1 == args2)) { 267s + msg <- c("Argument mismatches:\n - in fun1 but not fun2: ", 267s + paste0(setdiff(args1, args2), collapse=", "), 267s + "\n - in fun2 but not fun1: ", 267s + paste0(setdiff(args2, args1), collapse=", ")) 267s + stop(paste0(msg, collapse="")) 268s + } 268s + if (!all(sapply(1:length(vals1),function(i) identical(vals1[[i]], vals2[[i]])))) { 268s + msg <- c("Number of arguments is different:\n - fun1: ", 268s + paste0(vals1, collapse=", "), 268s + "\n - fun2: ", 268s + paste0(vals2, collapse=", ")) 268s + stop(paste0(msg, collapse="")) 268s + } 268s + invisible(TRUE) 268s + } 268s > 268s > check_args(lapply, pblapply) 268s > check_args(lapply, pbwalk) 268s > check_args(apply, pbapply) 268s > check_args(sapply, pbsapply) 268s > check_args(replicate, pbreplicate) 268s > check_args(tapply, pbtapply) 268s > check_args(eapply, pbeapply) 268s > check_args(vapply, pbvapply) 268s > check_args(by, pbby) 268s > 268s > check_args(mapply, pbmapply, cl=FALSE) 268s > check_args(Map, pbMap, cl=FALSE) 268s > check_args(.mapply, pb.mapply, cl=FALSE) 268s > 268s > ## --- test for NULL case in lapply --- 268s > 268s > l <- list(a = 1, 2, c = -1) 268s > f <- function(z) if (z < 0) return(NULL) else return(2 * z) 268s > r1 <- lapply(l, f) 268s > r2 <- pblapply(l, f) 268s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 268s > r1 268s $a 268s [1] 2 268s 268s [[2]] 268s [1] 4 268s 268s $c 268s NULL 268s 268s > r2 268s $a 268s [1] 2 268s 268s [[2]] 268s [1] 4 268s 268s $c 268s NULL 268s 268s > stopifnot(identical(r1, r2)) 268s > 268s > ## --- timings --- 268s > 268s > if (FALSE) { 268s + 268s + #library(plyr) 268s + ## from http://ryouready.wordpress.com/2010/01/11/progress-bars-in-r-part-ii-a-wrapper-for-apply-functions/#comment-122 268s + lapply_pb <- 268s + function(X, FUN, ...) 268s + { 268s + env <- environment() 268s + pb_Total <- length(X) 268s + counter <- 0 268s + pb <- txtProgressBar(min = 0, max = pb_Total, style = 3) 268s + wrapper <- function(...){ 268s + curVal <- get("counter", envir = env) 268s + assign("counter", curVal +1 ,envir = env) 268s + setTxtProgressBar(get("pb", envir = env), curVal + 1) 268s + FUN(...) 268s + } 268s + res <- lapply(X, wrapper, ...) 268s + close(pb) 268s + res 268s + } 268s + 268s + i <- seq_len(100) 268s + t1 <- system.time(lapply(i, function(i) Sys.sleep(0.1))) 268s + t2 <- system.time(lapply_pb(i, function(i) Sys.sleep(0.1))) 268s + #t3 <- system.time(l_ply(i, function(i) Sys.sleep(0.1), .progress="text")) 268s + t4 <- system.time(pblapply(i, function(i) Sys.sleep(0.1))) 268s + 268s + } 268s > 268s > ## --- knitr related tests --- 268s > 268s > if (FALSE) { 268s + 268s + sink("~/repos/pbapply/tests/pb.Rmd") 268s + cat("--- 268s + title: \"Test pbapply with knitr\" 268s + date: \"`r format(Sys.time(), '%B %d, %Y')`\" 268s + output: pdf_document 268s + --- 268s + 268s + # Introduction 268s + 268s + Play nice! 268s + 268s + ```{r setup} 268s + library(knitr) 268s + library(pbapply) 268s + interactive() 268s + getOption(\"knitr.in.progress\") 268s + is.null(getOption(\"knitr.in.progress\")) 268s + pboptions()$type 268s + ``` 268s + 268s + ```{r chunk} 268s + pbsapply(1:100, function(z) {Sys.sleep(0.01); sqrt(z)}) 268s + ``` 268s + ") 268s + sink() 268s + #knitr::knit("~/repos/pbapply/tests/pb.Rmd", "~/repos/pbapply/tests/pb.md") 268s + unlink("~/repos/pbapply/tests/pb.Rmd") 268s + unlink("~/repos/pbapply/tests/pb.md") 268s + 268s + } 268s > 268s > ## --- tests for issue #17: single core in cl --- 268s > 268s > f <- function(i) Sys.sleep(0.1) 268s > 268s > library(parallel) 268s > cl <- makeCluster(1L) 268s > 268s > pblapply(1:10, f, cl = cl) 269s | | 0 % ~calculating |+++++ | 10% ~01s |++++++++++ | 20% ~01s |+++++++++++++++ | 30% ~01s |++++++++++++++++++++ | 40% ~01s |+++++++++++++++++++++++++ | 50% ~01s |++++++++++++++++++++++++++++++ | 60% ~00s |+++++++++++++++++++++++++++++++++++ | 70% ~00s |++++++++++++++++++++++++++++++++++++++++ | 80% ~00s |+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s 269s [[1]] 269s NULL 269s 269s [[2]] 269s NULL 269s 269s [[3]] 269s NULL 269s 269s [[4]] 269s NULL 269s 269s [[5]] 269s NULL 269s 269s [[6]] 269s NULL 269s 269s [[7]] 269s NULL 269s 269s [[8]] 269s NULL 269s 269s [[9]] 269s NULL 269s 269s [[10]] 269s NULL 269s 269s > 269s > stopCluster(cl) 269s > 269s > ## --- tests for issue #33: return empty list for empty vector --- 269s > 269s > tmp1 <- lapply(character(0), identity) 269s > tmp2 <- pblapply(character(0), identity) 269s > stopifnot(length(tmp1) == length(tmp2)) 269s > stopifnot(identical(tmp1, tmp2)) 269s > 269s > tmp1 <- sapply(character(0), identity) 269s > tmp2 <- pbsapply(character(0), identity) 269s > stopifnot(length(tmp1) == length(tmp2)) 269s > stopifnot(identical(tmp1, tmp2)) 269s > 269s > tmp1 <- apply(matrix(numeric(0), 0, 0), 1, identity) 269s > tmp2 <- pbapply(matrix(numeric(0), 0, 0), 1, identity) 269s > stopifnot(length(tmp1) == length(tmp2)) 269s > stopifnot(identical(tmp1, tmp2)) 269s > 269s > tmp1 <- apply(matrix(numeric(0), 0, 0), 2, identity) 269s > tmp2 <- pbapply(matrix(numeric(0), 0, 0), 2, identity) 269s > stopifnot(length(tmp1) == length(tmp2)) 269s > stopifnot(identical(tmp1, tmp2)) 269s > 269s > ## --- tests for issue #48: pbwalk --- 269s > 269s > tmp <- tempdir() 269s > # f <- function(i, dir) { 269s > # x <- rnorm(100) 269s > # png(file.path(dir, paste0("plot-", i, ".png"))) 269s > # hist(x, col=i) 269s > # dev.off() 269s > # x 269s > # } 269s > f <- function(i, dir) { 269s + x <- data.frame(i=i, j=rnorm(5)) 269s + write.csv(x, row.names=FALSE, file=file.path(dir, paste0("file-", i, ".csv"))) 269s + x 269s + } 269s > # pblapply(1:3, f, dir=tmp) 269s > pbwalk(1:3, f, dir=tmp) 270s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 270s > # unlink(file.path(tmp, paste0("plot-", 1:3, ".png"))) 270s > unlink(file.path(tmp, paste0("file-", 1:3, ".csv"))) 270s > 270s > pbwalk(1:3, f, dir=tmp, cl=2) 270s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 270s > # unlink(file.path(tmp, paste0("plot-", 1:3, ".png"))) 270s > unlink(file.path(tmp, paste0("file-", 1:3, ".csv"))) 270s > 270s > cl <- parallel::makeCluster(2) 270s > pbwalk(1:3, f, dir=tmp, cl=cl) 270s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 270s > parallel::stopCluster(cl) 270s > # unlink(file.path(tmp, paste0("plot-", 1:3, ".png"))) 270s > unlink(file.path(tmp, paste0("file-", 1:3, ".csv"))) 270s > 270s > ## this could be a quartz issue ... 270s > # f <- function(i, dir) { 270s > # x <- rnorm(100) 270s > # png(file.path(dir, paste0("plot-", i, ".png"))) 270s > # hist(x, col=i) 270s > # dev.off() 270s > # x 270s > # } 270s > ## all this works 270s > # f(1, tmp) 270s > # pbapply::pblapply(1:3, f, dir=tmp) 270s > # pbapply::pbwalk(1:3, f, dir=tmp) 270s > # unlink(file.path(tmp, paste0("plot-", 1:3, ".png"))) 270s > ## all this does not 270s > # pbapply::pbwalk(1:3, f, dir=tmp, cl=2) 270s > # parallel::mclapply(1:3, f, dir=tmp, mc.cores=2) 270s > 270s > 270s > library(future) 270s > 270s > l <- list(a = 1, 2, c = -1) 270s > f <- function(z) { 270s + Sys.sleep(0.1) 270s + if (z < 0) return(NULL) else return(2 * z) 270s + } 270s > 270s > plan(sequential) 270s > r2 <- pblapply(l, f, cl = "future") 270s Loading required namespace: future.apply 270s | | 0 % ~calculating |+++++++++++++++++ | 33% ~00s |++++++++++++++++++++++++++++++++++ | 67% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 270s > 270s > plan(multisession, workers = 2) 271s > r2 <- pblapply(l, f, cl = "future") 271s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 271s > 271s > cl <- parallel::makeCluster(2) 272s > plan(cluster, workers = cl) 272s > r2 <- pblapply(l, f, cl = "future") 272s | | 0 % ~calculating |+++++++++++++++++++++++++ | 50% ~00s |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s 272s > parallel::stopCluster(cl) 272s > plan(sequential) 272s > 273s autopkgtest [19:29:51]: test run-unit-test: -----------------------] 274s run-unit-test PASS 274s autopkgtest [19:29:52]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 274s autopkgtest [19:29:52]: test pkg-r-autopkgtest: preparing testbed 275s Reading package lists... 276s Building dependency tree... 276s Reading state information... 276s Starting pkgProblemResolver with broken count: 0 276s Starting 2 pkgProblemResolver with broken count: 0 276s Done 277s The following additional packages will be installed: 277s build-essential cpp cpp-13 cpp-13-aarch64-linux-gnu cpp-aarch64-linux-gnu 277s dctrl-tools g++ g++-13 g++-13-aarch64-linux-gnu g++-aarch64-linux-gnu gcc 277s gcc-13 gcc-13-aarch64-linux-gnu gcc-aarch64-linux-gnu gfortran gfortran-13 277s gfortran-13-aarch64-linux-gnu gfortran-aarch64-linux-gnu icu-devtools 277s libasan8 libatomic1 libblas-dev libbz2-dev libc-dev-bin libc6-dev libcc1-0 277s libcrypt-dev libgcc-13-dev libgfortran-13-dev libhwasan0 libicu-dev libisl23 277s libitm1 libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblapack-dev liblsan0 277s liblzma-dev libmpc3 libncurses-dev libnsl-dev libpcre2-16-0 libpcre2-32-0 277s libpcre2-dev libpcre2-posix3 libpkgconf3 libpng-dev libreadline-dev 277s libstdc++-13-dev libtirpc-dev libtsan2 libubsan1 linux-libc-dev pkg-config 277s pkg-r-autopkgtest pkgconf pkgconf-bin r-base-dev r-cran-backports 277s r-cran-base64url r-cran-batchtools r-cran-brew r-cran-checkmate 277s r-cran-data.table r-cran-future.batchtools r-cran-hms r-cran-pkgconfig 277s r-cran-prettyunits r-cran-progress r-cran-stringi r-cran-vctrs rpcsvc-proto 277s zlib1g-dev 277s Suggested packages: 277s cpp-doc gcc-13-locales cpp-13-doc debtags gcc-13-doc gcc-multilib 277s manpages-dev autoconf automake libtool flex bison gdb gcc-doc 277s gdb-aarch64-linux-gnu gfortran-doc gfortran-13-doc libcoarrays-dev 277s liblapack-doc glibc-doc icu-doc liblzma-doc ncurses-doc readline-doc 277s libstdc++-13-doc texlive-base texlive-latex-base texlive-plain-generic 277s texlive-fonts-recommended texlive-fonts-extra texlive-extra-utils 277s texlive-latex-recommended texlive-latex-extra texinfo r-cran-knitr 277s r-cran-rmarkdown r-cran-doparallel r-cran-e1071 r-cran-foreach 277s r-cran-parallelmap r-cran-rpart r-cran-snow r-cran-tibble gridengine-client 277s slurm-client r-cran-lubridate r-cran-covr r-cran-testthat 277s Recommended packages: 277s bzip2-doc manpages manpages-dev libc-devtools libpng-tools r-cran-testthat 277s r-cran-openssl r-cran-ranger r-cran-fastmatch r-cran-devtools r-cran-ggplot2 277s r-cran-knitr r-cran-rmarkdown r-cran-tinytest r-cran-tibble r-cran-bit64 277s r-cran-bit r-cran-curl r-cran-r.utils r-cran-xts r-cran-nanotime r-cran-zoo 277s r-cran-yaml r-cran-markdown r-cran-r.rsp r-cran-pillar r-cran-covr 277s r-cran-dplyr r-cran-generics r-cran-pkgdown r-cran-waldo r-cran-xml2 277s r-cran-zeallot 277s The following NEW packages will be installed: 277s autopkgtest-satdep build-essential cpp cpp-13 cpp-13-aarch64-linux-gnu 277s cpp-aarch64-linux-gnu dctrl-tools g++ g++-13 g++-13-aarch64-linux-gnu 277s g++-aarch64-linux-gnu gcc gcc-13 gcc-13-aarch64-linux-gnu 277s gcc-aarch64-linux-gnu gfortran gfortran-13 gfortran-13-aarch64-linux-gnu 277s gfortran-aarch64-linux-gnu icu-devtools libasan8 libatomic1 libblas-dev 277s libbz2-dev libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libgcc-13-dev 277s libgfortran-13-dev libhwasan0 libicu-dev libisl23 libitm1 libjpeg-dev 277s libjpeg-turbo8-dev libjpeg8-dev liblapack-dev liblsan0 liblzma-dev libmpc3 277s libncurses-dev libnsl-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev 277s libpcre2-posix3 libpkgconf3 libpng-dev libreadline-dev libstdc++-13-dev 277s libtirpc-dev libtsan2 libubsan1 linux-libc-dev pkg-config pkg-r-autopkgtest 277s pkgconf pkgconf-bin r-base-dev r-cran-backports r-cran-base64url 277s r-cran-batchtools r-cran-brew r-cran-checkmate r-cran-data.table 277s r-cran-future.batchtools r-cran-hms r-cran-pkgconfig r-cran-prettyunits 277s r-cran-progress r-cran-stringi r-cran-vctrs rpcsvc-proto zlib1g-dev 277s 0 upgraded, 75 newly installed, 0 to remove and 0 not upgraded. 277s Need to get 99.0 MB/99.0 MB of archives. 277s After this operation, 354 MB of additional disk space will be used. 277s Get:1 /tmp/autopkgtest.zONO95/2-autopkgtest-satdep.deb autopkgtest-satdep arm64 0 [744 B] 277s Get:2 http://ftpmaster.internal/ubuntu noble/main arm64 libc-dev-bin arm64 2.39-0ubuntu2 [19.7 kB] 277s Get:3 http://ftpmaster.internal/ubuntu noble/main arm64 linux-libc-dev arm64 6.8.0-11.11 [1569 kB] 277s Get:4 http://ftpmaster.internal/ubuntu noble/main arm64 libcrypt-dev arm64 1:4.4.36-4 [136 kB] 277s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc-dev arm64 1.3.4+ds-1.1 [201 kB] 277s Get:6 http://ftpmaster.internal/ubuntu noble/main arm64 libnsl-dev arm64 1.3.0-3 [71.9 kB] 277s Get:7 http://ftpmaster.internal/ubuntu noble/main arm64 rpcsvc-proto arm64 1.4.2-0ubuntu6 [65.4 kB] 277s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 libc6-dev arm64 2.39-0ubuntu2 [1596 kB] 278s Get:9 http://ftpmaster.internal/ubuntu noble/main arm64 libisl23 arm64 0.26-3 [713 kB] 278s Get:10 http://ftpmaster.internal/ubuntu noble/main arm64 libmpc3 arm64 1.3.1-1 [55.3 kB] 278s Get:11 http://ftpmaster.internal/ubuntu noble/main arm64 cpp-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [10.3 MB] 278s Get:12 http://ftpmaster.internal/ubuntu noble/main arm64 cpp-13 arm64 13.2.0-17ubuntu2 [1028 B] 278s Get:13 http://ftpmaster.internal/ubuntu noble/main arm64 cpp-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [5316 B] 278s Get:14 http://ftpmaster.internal/ubuntu noble/main arm64 cpp arm64 4:13.2.0-7ubuntu1 [22.4 kB] 278s Get:15 http://ftpmaster.internal/ubuntu noble/main arm64 libcc1-0 arm64 14-20240303-1ubuntu1 [44.7 kB] 278s Get:16 http://ftpmaster.internal/ubuntu noble/main arm64 libitm1 arm64 14-20240303-1ubuntu1 [27.7 kB] 278s Get:17 http://ftpmaster.internal/ubuntu noble/main arm64 libatomic1 arm64 14-20240303-1ubuntu1 [11.4 kB] 278s Get:18 http://ftpmaster.internal/ubuntu noble/main arm64 libasan8 arm64 14-20240303-1ubuntu1 [2919 kB] 278s Get:19 http://ftpmaster.internal/ubuntu noble/main arm64 liblsan0 arm64 14-20240303-1ubuntu1 [1282 kB] 278s Get:20 http://ftpmaster.internal/ubuntu noble/main arm64 libtsan2 arm64 14-20240303-1ubuntu1 [2687 kB] 278s Get:21 http://ftpmaster.internal/ubuntu noble/main arm64 libubsan1 arm64 14-20240303-1ubuntu1 [1151 kB] 278s Get:22 http://ftpmaster.internal/ubuntu noble/main arm64 libhwasan0 arm64 14-20240303-1ubuntu1 [1597 kB] 278s Get:23 http://ftpmaster.internal/ubuntu noble/main arm64 libgcc-13-dev arm64 13.2.0-17ubuntu2 [2464 kB] 278s Get:24 http://ftpmaster.internal/ubuntu noble/main arm64 gcc-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [20.1 MB] 279s Get:25 http://ftpmaster.internal/ubuntu noble/main arm64 gcc-13 arm64 13.2.0-17ubuntu2 [467 kB] 279s Get:26 http://ftpmaster.internal/ubuntu noble/main arm64 gcc-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [1198 B] 279s Get:27 http://ftpmaster.internal/ubuntu noble/main arm64 gcc arm64 4:13.2.0-7ubuntu1 [5018 B] 279s Get:28 http://ftpmaster.internal/ubuntu noble/main arm64 libstdc++-13-dev arm64 13.2.0-17ubuntu2 [2322 kB] 279s Get:29 http://ftpmaster.internal/ubuntu noble/main arm64 g++-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [11.7 MB] 279s Get:30 http://ftpmaster.internal/ubuntu noble/main arm64 g++-13 arm64 13.2.0-17ubuntu2 [14.4 kB] 279s Get:31 http://ftpmaster.internal/ubuntu noble/main arm64 g++-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [962 B] 279s Get:32 http://ftpmaster.internal/ubuntu noble/main arm64 g++ arm64 4:13.2.0-7ubuntu1 [1082 B] 279s Get:33 http://ftpmaster.internal/ubuntu noble/main arm64 build-essential arm64 12.10ubuntu1 [4932 B] 279s Get:34 http://ftpmaster.internal/ubuntu noble/main arm64 dctrl-tools arm64 2.24-3build2 [65.2 kB] 279s Get:35 http://ftpmaster.internal/ubuntu noble/main arm64 libgfortran-13-dev arm64 13.2.0-17ubuntu2 [478 kB] 279s Get:36 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [10.8 MB] 279s Get:37 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran-13 arm64 13.2.0-17ubuntu2 [10.3 kB] 279s Get:38 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [1022 B] 279s Get:39 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran arm64 4:13.2.0-7ubuntu1 [1164 B] 279s Get:40 http://ftpmaster.internal/ubuntu noble/main arm64 icu-devtools arm64 74.2-1ubuntu1 [209 kB] 279s Get:41 http://ftpmaster.internal/ubuntu noble/main arm64 libblas-dev arm64 3.12.0-3 [111 kB] 279s Get:42 http://ftpmaster.internal/ubuntu noble/main arm64 libbz2-dev arm64 1.0.8-5ubuntu1 [35.8 kB] 279s Get:43 http://ftpmaster.internal/ubuntu noble/main arm64 libicu-dev arm64 74.2-1ubuntu1 [11.9 MB] 280s Get:44 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-turbo8-dev arm64 2.1.5-2ubuntu1 [304 kB] 280s Get:45 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg8-dev arm64 8c-2ubuntu11 [1484 B] 280s Get:46 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-dev arm64 8c-2ubuntu11 [1482 B] 280s Get:47 http://ftpmaster.internal/ubuntu noble/main arm64 liblapack-dev arm64 3.12.0-3 [4293 kB] 280s Get:48 http://ftpmaster.internal/ubuntu noble/main arm64 libncurses-dev arm64 6.4+20240113-1ubuntu1 [385 kB] 280s Get:49 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-16-0 arm64 10.42-4ubuntu1 [195 kB] 280s Get:50 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-32-0 arm64 10.42-4ubuntu1 [183 kB] 280s Get:51 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-posix3 arm64 10.42-4ubuntu1 [6654 B] 280s Get:52 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-dev arm64 10.42-4ubuntu1 [679 kB] 280s Get:53 http://ftpmaster.internal/ubuntu noble/main arm64 libpkgconf3 arm64 1.8.1-2 [31.2 kB] 280s Get:54 http://ftpmaster.internal/ubuntu noble/main arm64 zlib1g-dev arm64 1:1.3.dfsg-3ubuntu1 [895 kB] 280s Get:55 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpng-dev arm64 1.6.43-3 [267 kB] 280s Get:56 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libreadline-dev arm64 8.2-3.1 [177 kB] 280s Get:57 http://ftpmaster.internal/ubuntu noble/main arm64 pkgconf-bin arm64 1.8.1-2 [20.4 kB] 280s Get:58 http://ftpmaster.internal/ubuntu noble/main arm64 pkgconf arm64 1.8.1-2 [16.7 kB] 280s Get:59 http://ftpmaster.internal/ubuntu noble/main arm64 pkg-config arm64 1.8.1-2 [7170 B] 280s Get:60 http://ftpmaster.internal/ubuntu noble/main arm64 liblzma-dev arm64 5.4.5-0.3 [209 kB] 280s Get:61 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 r-base-dev all 4.3.3-2build1 [4334 B] 280s Get:62 http://ftpmaster.internal/ubuntu noble/universe arm64 pkg-r-autopkgtest all 20231212ubuntu1 [6448 B] 280s Get:63 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-backports arm64 1.4.1-1 [101 kB] 280s Get:64 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-base64url arm64 1.4-2build1 [26.4 kB] 280s Get:65 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-brew all 1.0-10-1 [77.7 kB] 280s Get:66 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-checkmate arm64 2.3.1-1 [711 kB] 280s Get:67 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-data.table arm64 1.14.10+dfsg-1 [1844 kB] 280s Get:68 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-pkgconfig all 2.0.3-2build1 [19.7 kB] 280s Get:69 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-vctrs arm64 0.6.5-1 [1327 kB] 280s Get:70 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-hms all 1.1.3-1 [96.5 kB] 280s Get:71 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-prettyunits all 1.2.0-1 [162 kB] 280s Get:72 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-progress all 1.2.3-1 [91.9 kB] 280s Get:73 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-stringi arm64 1.8.3-1 [869 kB] 280s Get:74 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-batchtools arm64 0.9.17+dfsg-1 [712 kB] 280s Get:75 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-future.batchtools all 0.12.1+dfsg-1 [185 kB] 281s Fetched 99.0 MB in 3s (29.8 MB/s) 281s Selecting previously unselected package libc-dev-bin. 281s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 82494 files and directories currently installed.) 281s Preparing to unpack .../00-libc-dev-bin_2.39-0ubuntu2_arm64.deb ... 281s Unpacking libc-dev-bin (2.39-0ubuntu2) ... 281s Selecting previously unselected package linux-libc-dev:arm64. 281s Preparing to unpack .../01-linux-libc-dev_6.8.0-11.11_arm64.deb ... 281s Unpacking linux-libc-dev:arm64 (6.8.0-11.11) ... 282s Selecting previously unselected package libcrypt-dev:arm64. 282s Preparing to unpack .../02-libcrypt-dev_1%3a4.4.36-4_arm64.deb ... 282s Unpacking libcrypt-dev:arm64 (1:4.4.36-4) ... 282s Selecting previously unselected package libtirpc-dev:arm64. 282s Preparing to unpack .../03-libtirpc-dev_1.3.4+ds-1.1_arm64.deb ... 282s Unpacking libtirpc-dev:arm64 (1.3.4+ds-1.1) ... 282s Selecting previously unselected package libnsl-dev:arm64. 282s Preparing to unpack .../04-libnsl-dev_1.3.0-3_arm64.deb ... 282s Unpacking libnsl-dev:arm64 (1.3.0-3) ... 282s Selecting previously unselected package rpcsvc-proto. 282s Preparing to unpack .../05-rpcsvc-proto_1.4.2-0ubuntu6_arm64.deb ... 282s Unpacking rpcsvc-proto (1.4.2-0ubuntu6) ... 282s Selecting previously unselected package libc6-dev:arm64. 282s Preparing to unpack .../06-libc6-dev_2.39-0ubuntu2_arm64.deb ... 282s Unpacking libc6-dev:arm64 (2.39-0ubuntu2) ... 282s Selecting previously unselected package libisl23:arm64. 282s Preparing to unpack .../07-libisl23_0.26-3_arm64.deb ... 282s Unpacking libisl23:arm64 (0.26-3) ... 282s Selecting previously unselected package libmpc3:arm64. 282s Preparing to unpack .../08-libmpc3_1.3.1-1_arm64.deb ... 282s Unpacking libmpc3:arm64 (1.3.1-1) ... 282s Selecting previously unselected package cpp-13-aarch64-linux-gnu. 282s Preparing to unpack .../09-cpp-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 282s Unpacking cpp-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 282s Selecting previously unselected package cpp-13. 282s Preparing to unpack .../10-cpp-13_13.2.0-17ubuntu2_arm64.deb ... 282s Unpacking cpp-13 (13.2.0-17ubuntu2) ... 282s Selecting previously unselected package cpp-aarch64-linux-gnu. 282s Preparing to unpack .../11-cpp-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 282s Unpacking cpp-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 282s Selecting previously unselected package cpp. 282s Preparing to unpack .../12-cpp_4%3a13.2.0-7ubuntu1_arm64.deb ... 282s Unpacking cpp (4:13.2.0-7ubuntu1) ... 282s Selecting previously unselected package libcc1-0:arm64. 282s Preparing to unpack .../13-libcc1-0_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libcc1-0:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package libitm1:arm64. 282s Preparing to unpack .../14-libitm1_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libitm1:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package libatomic1:arm64. 282s Preparing to unpack .../15-libatomic1_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libatomic1:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package libasan8:arm64. 282s Preparing to unpack .../16-libasan8_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libasan8:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package liblsan0:arm64. 282s Preparing to unpack .../17-liblsan0_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking liblsan0:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package libtsan2:arm64. 282s Preparing to unpack .../18-libtsan2_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libtsan2:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package libubsan1:arm64. 282s Preparing to unpack .../19-libubsan1_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libubsan1:arm64 (14-20240303-1ubuntu1) ... 282s Selecting previously unselected package libhwasan0:arm64. 282s Preparing to unpack .../20-libhwasan0_14-20240303-1ubuntu1_arm64.deb ... 282s Unpacking libhwasan0:arm64 (14-20240303-1ubuntu1) ... 283s Selecting previously unselected package libgcc-13-dev:arm64. 283s Preparing to unpack .../21-libgcc-13-dev_13.2.0-17ubuntu2_arm64.deb ... 283s Unpacking libgcc-13-dev:arm64 (13.2.0-17ubuntu2) ... 283s Selecting previously unselected package gcc-13-aarch64-linux-gnu. 283s Preparing to unpack .../22-gcc-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 283s Unpacking gcc-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 283s Selecting previously unselected package gcc-13. 283s Preparing to unpack .../23-gcc-13_13.2.0-17ubuntu2_arm64.deb ... 283s Unpacking gcc-13 (13.2.0-17ubuntu2) ... 283s Selecting previously unselected package gcc-aarch64-linux-gnu. 283s Preparing to unpack .../24-gcc-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 283s Unpacking gcc-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 283s Selecting previously unselected package gcc. 283s Preparing to unpack .../25-gcc_4%3a13.2.0-7ubuntu1_arm64.deb ... 283s Unpacking gcc (4:13.2.0-7ubuntu1) ... 283s Selecting previously unselected package libstdc++-13-dev:arm64. 283s Preparing to unpack .../26-libstdc++-13-dev_13.2.0-17ubuntu2_arm64.deb ... 283s Unpacking libstdc++-13-dev:arm64 (13.2.0-17ubuntu2) ... 283s Selecting previously unselected package g++-13-aarch64-linux-gnu. 283s Preparing to unpack .../27-g++-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 283s Unpacking g++-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 283s Selecting previously unselected package g++-13. 284s Preparing to unpack .../28-g++-13_13.2.0-17ubuntu2_arm64.deb ... 284s Unpacking g++-13 (13.2.0-17ubuntu2) ... 284s Selecting previously unselected package g++-aarch64-linux-gnu. 284s Preparing to unpack .../29-g++-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 284s Unpacking g++-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 284s Selecting previously unselected package g++. 284s Preparing to unpack .../30-g++_4%3a13.2.0-7ubuntu1_arm64.deb ... 284s Unpacking g++ (4:13.2.0-7ubuntu1) ... 284s Selecting previously unselected package build-essential. 284s Preparing to unpack .../31-build-essential_12.10ubuntu1_arm64.deb ... 284s Unpacking build-essential (12.10ubuntu1) ... 284s Selecting previously unselected package dctrl-tools. 284s Preparing to unpack .../32-dctrl-tools_2.24-3build2_arm64.deb ... 284s Unpacking dctrl-tools (2.24-3build2) ... 284s Selecting previously unselected package libgfortran-13-dev:arm64. 284s Preparing to unpack .../33-libgfortran-13-dev_13.2.0-17ubuntu2_arm64.deb ... 284s Unpacking libgfortran-13-dev:arm64 (13.2.0-17ubuntu2) ... 284s Selecting previously unselected package gfortran-13-aarch64-linux-gnu. 284s Preparing to unpack .../34-gfortran-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 284s Unpacking gfortran-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 284s Selecting previously unselected package gfortran-13. 284s Preparing to unpack .../35-gfortran-13_13.2.0-17ubuntu2_arm64.deb ... 284s Unpacking gfortran-13 (13.2.0-17ubuntu2) ... 284s Selecting previously unselected package gfortran-aarch64-linux-gnu. 284s Preparing to unpack .../36-gfortran-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 284s Unpacking gfortran-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 284s Selecting previously unselected package gfortran. 284s Preparing to unpack .../37-gfortran_4%3a13.2.0-7ubuntu1_arm64.deb ... 284s Unpacking gfortran (4:13.2.0-7ubuntu1) ... 284s Selecting previously unselected package icu-devtools. 284s Preparing to unpack .../38-icu-devtools_74.2-1ubuntu1_arm64.deb ... 284s Unpacking icu-devtools (74.2-1ubuntu1) ... 284s Selecting previously unselected package libblas-dev:arm64. 284s Preparing to unpack .../39-libblas-dev_3.12.0-3_arm64.deb ... 284s Unpacking libblas-dev:arm64 (3.12.0-3) ... 284s Selecting previously unselected package libbz2-dev:arm64. 284s Preparing to unpack .../40-libbz2-dev_1.0.8-5ubuntu1_arm64.deb ... 284s Unpacking libbz2-dev:arm64 (1.0.8-5ubuntu1) ... 284s Selecting previously unselected package libicu-dev:arm64. 284s Preparing to unpack .../41-libicu-dev_74.2-1ubuntu1_arm64.deb ... 284s Unpacking libicu-dev:arm64 (74.2-1ubuntu1) ... 284s Selecting previously unselected package libjpeg-turbo8-dev:arm64. 284s Preparing to unpack .../42-libjpeg-turbo8-dev_2.1.5-2ubuntu1_arm64.deb ... 284s Unpacking libjpeg-turbo8-dev:arm64 (2.1.5-2ubuntu1) ... 284s Selecting previously unselected package libjpeg8-dev:arm64. 284s Preparing to unpack .../43-libjpeg8-dev_8c-2ubuntu11_arm64.deb ... 284s Unpacking libjpeg8-dev:arm64 (8c-2ubuntu11) ... 284s Selecting previously unselected package libjpeg-dev:arm64. 284s Preparing to unpack .../44-libjpeg-dev_8c-2ubuntu11_arm64.deb ... 284s Unpacking libjpeg-dev:arm64 (8c-2ubuntu11) ... 284s Selecting previously unselected package liblapack-dev:arm64. 284s Preparing to unpack .../45-liblapack-dev_3.12.0-3_arm64.deb ... 284s Unpacking liblapack-dev:arm64 (3.12.0-3) ... 285s Selecting previously unselected package libncurses-dev:arm64. 285s Preparing to unpack .../46-libncurses-dev_6.4+20240113-1ubuntu1_arm64.deb ... 285s Unpacking libncurses-dev:arm64 (6.4+20240113-1ubuntu1) ... 285s Selecting previously unselected package libpcre2-16-0:arm64. 285s Preparing to unpack .../47-libpcre2-16-0_10.42-4ubuntu1_arm64.deb ... 285s Unpacking libpcre2-16-0:arm64 (10.42-4ubuntu1) ... 285s Selecting previously unselected package libpcre2-32-0:arm64. 285s Preparing to unpack .../48-libpcre2-32-0_10.42-4ubuntu1_arm64.deb ... 285s Unpacking libpcre2-32-0:arm64 (10.42-4ubuntu1) ... 285s Selecting previously unselected package libpcre2-posix3:arm64. 285s Preparing to unpack .../49-libpcre2-posix3_10.42-4ubuntu1_arm64.deb ... 285s Unpacking libpcre2-posix3:arm64 (10.42-4ubuntu1) ... 285s Selecting previously unselected package libpcre2-dev:arm64. 285s Preparing to unpack .../50-libpcre2-dev_10.42-4ubuntu1_arm64.deb ... 285s Unpacking libpcre2-dev:arm64 (10.42-4ubuntu1) ... 285s Selecting previously unselected package libpkgconf3:arm64. 285s Preparing to unpack .../51-libpkgconf3_1.8.1-2_arm64.deb ... 285s Unpacking libpkgconf3:arm64 (1.8.1-2) ... 285s Selecting previously unselected package zlib1g-dev:arm64. 285s Preparing to unpack .../52-zlib1g-dev_1%3a1.3.dfsg-3ubuntu1_arm64.deb ... 285s Unpacking zlib1g-dev:arm64 (1:1.3.dfsg-3ubuntu1) ... 285s Selecting previously unselected package libpng-dev:arm64. 285s Preparing to unpack .../53-libpng-dev_1.6.43-3_arm64.deb ... 285s Unpacking libpng-dev:arm64 (1.6.43-3) ... 285s Selecting previously unselected package libreadline-dev:arm64. 285s Preparing to unpack .../54-libreadline-dev_8.2-3.1_arm64.deb ... 285s Unpacking libreadline-dev:arm64 (8.2-3.1) ... 285s Selecting previously unselected package pkgconf-bin. 285s Preparing to unpack .../55-pkgconf-bin_1.8.1-2_arm64.deb ... 285s Unpacking pkgconf-bin (1.8.1-2) ... 285s Selecting previously unselected package pkgconf:arm64. 285s Preparing to unpack .../56-pkgconf_1.8.1-2_arm64.deb ... 285s Unpacking pkgconf:arm64 (1.8.1-2) ... 285s Selecting previously unselected package pkg-config:arm64. 285s Preparing to unpack .../57-pkg-config_1.8.1-2_arm64.deb ... 285s Unpacking pkg-config:arm64 (1.8.1-2) ... 285s Selecting previously unselected package liblzma-dev:arm64. 285s Preparing to unpack .../58-liblzma-dev_5.4.5-0.3_arm64.deb ... 285s Unpacking liblzma-dev:arm64 (5.4.5-0.3) ... 285s Selecting previously unselected package r-base-dev. 285s Preparing to unpack .../59-r-base-dev_4.3.3-2build1_all.deb ... 285s Unpacking r-base-dev (4.3.3-2build1) ... 285s Selecting previously unselected package pkg-r-autopkgtest. 285s Preparing to unpack .../60-pkg-r-autopkgtest_20231212ubuntu1_all.deb ... 285s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ... 285s Selecting previously unselected package r-cran-backports. 285s Preparing to unpack .../61-r-cran-backports_1.4.1-1_arm64.deb ... 285s Unpacking r-cran-backports (1.4.1-1) ... 285s Selecting previously unselected package r-cran-base64url. 285s Preparing to unpack .../62-r-cran-base64url_1.4-2build1_arm64.deb ... 285s Unpacking r-cran-base64url (1.4-2build1) ... 285s Selecting previously unselected package r-cran-brew. 285s Preparing to unpack .../63-r-cran-brew_1.0-10-1_all.deb ... 285s Unpacking r-cran-brew (1.0-10-1) ... 285s Selecting previously unselected package r-cran-checkmate. 285s Preparing to unpack .../64-r-cran-checkmate_2.3.1-1_arm64.deb ... 285s Unpacking r-cran-checkmate (2.3.1-1) ... 285s Selecting previously unselected package r-cran-data.table. 285s Preparing to unpack .../65-r-cran-data.table_1.14.10+dfsg-1_arm64.deb ... 285s Unpacking r-cran-data.table (1.14.10+dfsg-1) ... 285s Selecting previously unselected package r-cran-pkgconfig. 285s Preparing to unpack .../66-r-cran-pkgconfig_2.0.3-2build1_all.deb ... 285s Unpacking r-cran-pkgconfig (2.0.3-2build1) ... 285s Selecting previously unselected package r-cran-vctrs. 286s Preparing to unpack .../67-r-cran-vctrs_0.6.5-1_arm64.deb ... 286s Unpacking r-cran-vctrs (0.6.5-1) ... 286s Selecting previously unselected package r-cran-hms. 286s Preparing to unpack .../68-r-cran-hms_1.1.3-1_all.deb ... 286s Unpacking r-cran-hms (1.1.3-1) ... 286s Selecting previously unselected package r-cran-prettyunits. 286s Preparing to unpack .../69-r-cran-prettyunits_1.2.0-1_all.deb ... 286s Unpacking r-cran-prettyunits (1.2.0-1) ... 286s Selecting previously unselected package r-cran-progress. 286s Preparing to unpack .../70-r-cran-progress_1.2.3-1_all.deb ... 286s Unpacking r-cran-progress (1.2.3-1) ... 286s Selecting previously unselected package r-cran-stringi. 286s Preparing to unpack .../71-r-cran-stringi_1.8.3-1_arm64.deb ... 286s Unpacking r-cran-stringi (1.8.3-1) ... 286s Selecting previously unselected package r-cran-batchtools. 286s Preparing to unpack .../72-r-cran-batchtools_0.9.17+dfsg-1_arm64.deb ... 286s Unpacking r-cran-batchtools (0.9.17+dfsg-1) ... 286s Selecting previously unselected package r-cran-future.batchtools. 286s Preparing to unpack .../73-r-cran-future.batchtools_0.12.1+dfsg-1_all.deb ... 286s Unpacking r-cran-future.batchtools (0.12.1+dfsg-1) ... 286s Selecting previously unselected package autopkgtest-satdep. 286s Preparing to unpack .../74-2-autopkgtest-satdep.deb ... 286s Unpacking autopkgtest-satdep (0) ... 286s Setting up r-cran-backports (1.4.1-1) ... 286s Setting up r-cran-prettyunits (1.2.0-1) ... 286s Setting up linux-libc-dev:arm64 (6.8.0-11.11) ... 286s Setting up r-cran-checkmate (2.3.1-1) ... 286s Setting up r-cran-data.table (1.14.10+dfsg-1) ... 286s Setting up libpcre2-16-0:arm64 (10.42-4ubuntu1) ... 286s Setting up r-cran-pkgconfig (2.0.3-2build1) ... 286s Setting up libpcre2-32-0:arm64 (10.42-4ubuntu1) ... 286s Setting up r-cran-brew (1.0-10-1) ... 286s Setting up libtirpc-dev:arm64 (1.3.4+ds-1.1) ... 286s Setting up libpkgconf3:arm64 (1.8.1-2) ... 286s Setting up rpcsvc-proto (1.4.2-0ubuntu6) ... 286s Setting up r-cran-stringi (1.8.3-1) ... 286s Setting up libmpc3:arm64 (1.3.1-1) ... 286s Setting up libatomic1:arm64 (14-20240303-1ubuntu1) ... 286s Setting up icu-devtools (74.2-1ubuntu1) ... 286s Setting up pkgconf-bin (1.8.1-2) ... 286s Setting up liblzma-dev:arm64 (5.4.5-0.3) ... 286s Setting up libubsan1:arm64 (14-20240303-1ubuntu1) ... 286s Setting up libpcre2-posix3:arm64 (10.42-4ubuntu1) ... 286s Setting up libnsl-dev:arm64 (1.3.0-3) ... 286s Setting up libhwasan0:arm64 (14-20240303-1ubuntu1) ... 286s Setting up libcrypt-dev:arm64 (1:4.4.36-4) ... 286s Setting up libasan8:arm64 (14-20240303-1ubuntu1) ... 286s Setting up libtsan2:arm64 (14-20240303-1ubuntu1) ... 286s Setting up libisl23:arm64 (0.26-3) ... 286s Setting up libc-dev-bin (2.39-0ubuntu2) ... 286s Setting up libcc1-0:arm64 (14-20240303-1ubuntu1) ... 286s Setting up r-cran-vctrs (0.6.5-1) ... 286s Setting up liblsan0:arm64 (14-20240303-1ubuntu1) ... 286s Setting up libblas-dev:arm64 (3.12.0-3) ... 286s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so to provide /usr/lib/aarch64-linux-gnu/libblas.so (libblas.so-aarch64-linux-gnu) in auto mode 286s Setting up dctrl-tools (2.24-3build2) ... 286s Setting up libitm1:arm64 (14-20240303-1ubuntu1) ... 286s Setting up r-cran-base64url (1.4-2build1) ... 286s Setting up cpp-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 286s Setting up pkgconf:arm64 (1.8.1-2) ... 286s Setting up cpp-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 286s Setting up r-cran-hms (1.1.3-1) ... 286s Setting up liblapack-dev:arm64 (3.12.0-3) ... 286s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so to provide /usr/lib/aarch64-linux-gnu/liblapack.so (liblapack.so-aarch64-linux-gnu) in auto mode 286s Setting up pkg-config:arm64 (1.8.1-2) ... 286s Setting up libgcc-13-dev:arm64 (13.2.0-17ubuntu2) ... 286s Setting up libc6-dev:arm64 (2.39-0ubuntu2) ... 286s Setting up libgfortran-13-dev:arm64 (13.2.0-17ubuntu2) ... 286s Setting up r-cran-progress (1.2.3-1) ... 286s Setting up libicu-dev:arm64 (74.2-1ubuntu1) ... 286s Setting up libstdc++-13-dev:arm64 (13.2.0-17ubuntu2) ... 286s Setting up libbz2-dev:arm64 (1.0.8-5ubuntu1) ... 286s Setting up libjpeg-turbo8-dev:arm64 (2.1.5-2ubuntu1) ... 286s Setting up libncurses-dev:arm64 (6.4+20240113-1ubuntu1) ... 286s Setting up libpcre2-dev:arm64 (10.42-4ubuntu1) ... 286s Setting up cpp-13 (13.2.0-17ubuntu2) ... 286s Setting up gcc-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 286s Setting up libreadline-dev:arm64 (8.2-3.1) ... 286s Setting up gcc-13 (13.2.0-17ubuntu2) ... 286s Setting up zlib1g-dev:arm64 (1:1.3.dfsg-3ubuntu1) ... 286s Setting up r-cran-batchtools (0.9.17+dfsg-1) ... 286s Setting up cpp (4:13.2.0-7ubuntu1) ... 286s Setting up libjpeg8-dev:arm64 (8c-2ubuntu11) ... 286s Setting up g++-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 286s Setting up gcc-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 286s Setting up g++-13 (13.2.0-17ubuntu2) ... 286s Setting up libpng-dev:arm64 (1.6.43-3) ... 286s Setting up libjpeg-dev:arm64 (8c-2ubuntu11) ... 286s Setting up gfortran-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 286s Setting up gcc (4:13.2.0-7ubuntu1) ... 286s Setting up gfortran-13 (13.2.0-17ubuntu2) ... 286s Setting up r-cran-future.batchtools (0.12.1+dfsg-1) ... 286s Setting up g++-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 286s Setting up gfortran-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 286s Setting up gfortran (4:13.2.0-7ubuntu1) ... 286s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode 286s update-alternatives: warning: skip creation of /usr/share/man/man1/f95.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f95) doesn't exist 286s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode 286s update-alternatives: warning: skip creation of /usr/share/man/man1/f77.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f77) doesn't exist 286s Setting up g++ (4:13.2.0-7ubuntu1) ... 286s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 286s Setting up build-essential (12.10ubuntu1) ... 286s Setting up r-base-dev (4.3.3-2build1) ... 286s Setting up pkg-r-autopkgtest (20231212ubuntu1) ... 286s Setting up autopkgtest-satdep (0) ... 286s Processing triggers for man-db (2.12.0-3) ... 287s Processing triggers for install-info (7.1-3) ... 287s Processing triggers for libc-bin (2.39-0ubuntu2) ... 290s (Reading database ... 87119 files and directories currently installed.) 290s Removing autopkgtest-satdep (0) ... 291s autopkgtest [19:30:09]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest 291s autopkgtest [19:30:09]: test pkg-r-autopkgtest: [----------------------- 291s Test: Try to load the R library pbapply 291s 291s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 291s Copyright (C) 2024 The R Foundation for Statistical Computing 291s Platform: aarch64-unknown-linux-gnu (64-bit) 291s 291s R is free software and comes with ABSOLUTELY NO WARRANTY. 291s You are welcome to redistribute it under certain conditions. 291s Type 'license()' or 'licence()' for distribution details. 291s 291s R is a collaborative project with many contributors. 291s Type 'contributors()' for more information and 291s 'citation()' on how to cite R or R packages in publications. 291s 291s Type 'demo()' for some demos, 'help()' for on-line help, or 291s 'help.start()' for an HTML browser interface to help. 291s Type 'q()' to quit R. 291s 292s > library('pbapply') 292s > 292s > 292s Other tests are currently unsupported! 292s They will be progressively added. 292s autopkgtest [19:30:10]: test pkg-r-autopkgtest: -----------------------] 292s pkg-r-autopkgtest PASS 292s autopkgtest [19:30:10]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 293s autopkgtest [19:30:11]: @@@@@@@@@@@@@@@@@@@@ summary 293s run-unit-test PASS 293s pkg-r-autopkgtest PASS 311s Creating nova instance adt-noble-arm64-r-cran-pbapply-20240316-192518-juju-7f2275-prod-proposed-migration-environment-2 from image adt/ubuntu-noble-arm64-server-20240314.img (UUID 7faf5f09-d335-4346-a441-4eab2f9c04fe)...