蚊章汇 - 统计
type: channel
link: https://linuxcn.bwsl.wang/tag/%E7%BB%9F%E8%AE%A1/
items: 使用 Tokei 查看有关代码的统计信息
items: 如何用 Python 编写你喜爱的 R 函数
items: RStudio IDE 入门
items: 如何统计 Linux 中文件和文件夹/目录的数量
items: Linux输入统计神器——WhatPulse

使用 Tokei 查看有关代码的统计信息
type: item
date: 2021-07-06T19:43:15+08:00
description: 了解有关项目编程语言的详细信息。近来，GitHub 添加了一个小指标来展示项目的细节，包括项目使用的编程语言。在这之前，对一个新的贡献者来说，了解他们感兴趣的项目的信息是较为困难的。这个补充很有帮助，但是如果您想知道有关本地存储库中项目的相同信息该怎么办呢？ 这正是 Tokei 派上用场的地方。这是一个当你想和精通不同语言的人想要构建一个项目时可以告诉你项目的代码数据的特别有用的工具。探索 Tokei据其 README，“Tokei 是一个可以展示你的代码数据的程序。Tokei 将会展示文件的数量，和这些文件中不同语言的代码、注释、空白的行数。”它的 v.12.1.0 版本 elaborates 是这样子介绍的，“Tokei 是一个快速准确的代码分析 CLI 工具和库，可以使你轻松快速地在你的代码库中看到有多少空白、评论和代码行”。它能够识别超过 150 种编程语言。$ ./tokei ~/exa/src ~/Work/wildfly/jaxrs ================== Language Files Lines Code Comments Blank Java 46 6135 4324 945 632 XML 23 5211 4839 473 224 --------------------------------- Rust Markdown ----------------------------------- Total 安装 Tokei在 Fedora 上安装 Tokei：$ sudo dnf install tokei 用 Rust's Cargo 包管理器安装：$ cargo install tokei 使用 Tokei要列出当前目录中的代码统计：$ tokei =============================================================================== Language Files Lines Code Comments Blanks =============================================================================== Ada 10 2840 1681 560 599 Assembly 4 2508 1509 458 541 GNU Style Assembly 4 2751 1528 748 475 Autoconf 16 2294 1153 756 385 Automake 1 45 34 0 11 BASH 4 1895 1602 133 160 Batch 2 4 4 0 0 C 330 206433 150241 23402 32790 C Header 342 60941 24682 29143 7116 CMake 48 4572 3459 548 565 C# 9 1615 879 506 230 C++ 5 907 599 136 172 Dockerfile 2 16 10 0 6 Fish 1 87 77 5 5 HTML 1 545 544 1 0 JSON 5 8995 8995 0 0 Makefile 10 504 293 72 139 Module-Definition 12 1183 1046 65 72 MSBuild 1 141 140 0 1 Pascal 4 1443 1016 216 211 Perl 2 189 137 16 36 Python 4 1257 949 112 196 Ruby 1 23 18 1 4 Shell 15 1860 1411 222 227 Plain Text 35 29425 0 26369 3056 TOML 64 3180 2302 453 425 Visual Studio Pro| 30 14597 14597 0 0 Visual Studio Sol| 6 655 650 0 5 XML 1 116 95 17 4 YAML 2 81 56 12 13 Zsh 1 59 48 8 3 ------------------------------------------------------------------------------- Markdown 55 4677 0 3214 1463 |- C 1 2 2 0 0 |- Rust 19 336 268 20 48 |- TOML 23 61 60 0 1 (Total) 5076 330 3234 1512 ----------------------------------------------------…

如何用 Python 编写你喜爱的 R 函数
type: item
date: 2018-12-06T07:42:00+08:00
description: R 还是 Python ? Python 脚本模仿易使用的 R 风格函数，使得数据统计变得简单易行。“Python vs. R” 是数据科学和机器学习的现代战争之一。毫无疑问，近年来这两者发展迅猛，成为数据科学、预测分析和机器学习领域的顶级编程语言。事实上，根据 IEEE 最近的一篇文章，Python 已在 最受欢迎编程语言排行榜 中超越 C++ 成为排名第一的语言，并且 R 语言也稳居前 10 位。但是，这两者之间存在一些根本区别。R 语言设计的初衷主要是作为统计分析和数据分析问题的快速原型设计的工具，另一方面，Python 是作为一种通用的、现代的面向对象语言而开发的，类似 C++ 或 Java，但具有更简单的学习曲线和更灵活的语言风格。因此，R 仍在统计学家、定量生物学家、物理学家和经济学家中备受青睐，而 Python 已逐渐成为日常脚本、自动化、后端 Web 开发、分析和通用机器学习框架的顶级语言，拥有广泛的支持基础和开源开发社区。在 Python 环境中模仿函数式编程R 作为函数式编程语言的本质为用户提供了一个极其简洁的用于快速计算概率的接口，还为数据分析问题提供了必不可少的描述统计和推论统计方法（LCTT 译注：统计学从功能上分为描述统计学和推论统计学）。例如，只用一个简洁的函数调用来解决以下问题难道不是很好吗？如何计算数据向量的平均数 / 中位数 / 众数。如何计算某些服从正态分布的事件的累积概率。如果服 从泊松分布 Poisson distribution 又该怎样计算呢？如何计算一系列数据点的四分位距。如何生成服从学生 t 分布的一些随机数（LCTT 译注： 在概率论和统计学中，学生 t-分布（Student’s t-distribution）可简称为 t 分布，用于根据小样本来估计呈正态分布且方差未知的总体的均值）。R 编程环境可以完成所有这些工作。另一方面，Python 的脚本编写能力使分析师能够在各种分析流程中使用这些统计数据，具有无限的复杂性和创造力。要结合二者的优势，你只需要一个简单的 Python 封装的库，其中包含与 R 风格定义的概率分布和描述性统计相关的最常用函数。 这使你可以非常快速地调用这些函数，而无需转到正确的 Python 统计库并理解整个方法和参数列表。便于调用 R 函数的 Python 包装脚本我编写了一个 Python 脚本 ，用 Python 简单统计分析定义了最简洁和最常用的 R 函数。导入此脚本后，你将能够原生地使用这些 R 函数，就像在 R 编程环境中一样。此脚本的目标是提供简单的 Python 函数，模仿 R 风格的统计函数，以快速计算密度估计和点估计、累积分布和分位数，并生成重要概率分布的随机变量。为了延续 R 风格，脚本不使用类结构，并且只在文件中定义原始函数。因此，用户可以导入这个 Python 脚本，并在需要单个名称调用时使用所有功能。请注意，我使用 mimic 这个词。 在任何情况下，我都声称要模仿 R 的真正的函数式编程范式，该范式包括深层环境设置以及这些环境和对象之间的复杂关系。 这个脚本允许我（我希望无数其他的 Python 用户）快速启动 Python 程序或 Jupyter 笔记本程序、导入脚本，并立即开始进行简单的描述性统计。这就是目标，仅此而已。如果你已经写过 R 代码（可能在研究生院）并且刚刚开始学习并使用 Python 进行数据分析，那么你将很高兴看到并在 Jupyter 笔记本中以类似在 R 环境中一样使用一些相同的知名函数。无论出于何种原因，使用这个脚本很有趣。简单的例子首先，只需导入脚本并开始处理数字列表，就好像它们是 R 中的数据向量一样。from R_functions import * lst=[20,12,16,32,27,65,44,45,22,18] <more code, more statistics...>假设你想从数据向量计算 Tuckey 五数摘要。 你只需要调用一个简单的函数 fivenum，然后将向量传进去。 它将返回五数摘要，存在 NumPy 数组中。lst=[20,12,16,32,27,65,44,45,22,18] fivenum(lst) > array([12. , 18.5, 24.5, 41. , 65. ])或许你想要知道下面问题的答案：假设一台机器平均每小时输出 10 件成品，标准偏差为 2。输出模式遵循接近正态的分布。 机器在下一个小时内输出至少 7 个但不超过 12 个单位的概率是多少？答案基本上是这样的：使用 pnorm ，你可以只用一行代码就能获得答案：pnorm(12,10,2)-pnorm(7,10,2) > 0.7745375447996848或者你可能需要回答以下问题：假设…

RStudio IDE 入门
type: item
date: 2018-03-18T08:10:00+08:00
description: 用于统计技术的 R 项目是分析数据的有力方式，而 RStudio IDE 则可使这一切更加容易。从我记事起，我就一直喜欢摆弄数字。作为 20 世纪 70 年代后期的大学生，我上过统计学的课程，学习了如何检查和分析数据以揭示其意义。那时候，我有一部科学计算器，它让统计计算变得比以往更容易。在 90 年代早期，作为一名从事 t 检验 t-test 、相关性以及 ANOVA 研究的教育心理学研究生，我开始通过精心编写输入到 IBM 主机的文本文件来进行计算。这个主机远超我的手持计算器，但是一个小的空格错误就会导致整个过程无效，而且这个过程仍然有点乏味。撰写论文时，尤其是我的毕业论文，我需要一种方法能够根据我的数据来创建图表，并将它们嵌入到文字处理文档中。我着迷于 Microsoft Excel 及其数字运算能力以及可以用计算结果创建出的大量图表。但这条路每一步都有成本。在 20 世纪 90 年代，除了 Excel，还有其他专有软件包，比如 SAS 和 SPSS+，但对于我那已经满满的研究生时间表来说，学习曲线是一项艰巨的任务。快速回到现在最近，由于我对数据科学的兴趣浓厚，加上对 Linux 和开源软件感兴趣，我阅读了大量的数据科学文章，并在 Linux 会议上听了许多数据科学演讲者谈论他们的工作。因此，我开始对编程语言 R（一种开源的统计计算软件）非常感兴趣。起初，这只是一个偶发的一个想法。当我和我的朋友 Michael J. Gallagher 博士谈论他如何在他的 博士论文 研究中使用 R 时，这个火花便增大了。最后，我访问了 R 项目 的网站，并了解到我可以轻松地安装 R for Linux。游戏开始！安装 R根据你的操作系统和发行版情况，安装 R 会稍有不同。请参阅 Comprehensive R Archive Network （CRAN）网站上的安装指南。CRAN 提供了在 各种 Linux 发行版，Fedora，RHEL，及其衍生版，MacOS 和 Windows 上的安装指示。我在使用 Ubuntu，按照 CRAN 的指示，将以下行加入到我的 /etc/apt/sources.list 文件中：deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu artful/ 接着我在终端运行下面命令：$ sudo apt-get update $ sudo apt-get install r-base 根据 CRAN 说明，“需要从源码编译 R 的用户[如包的维护者，或者任何通过 install.packages() 安装包的用户]也应该安装 r-base-dev 的包。”使用 R 和 RStudio安装好了 R，我就准备了解更多关于使用这个强大的工具的信息。Gallagher 博士推荐了 DataCamp 上的 “R 语言入门”，并且我也在 Code School 找到了适用于 R 新手的免费课程。两门课程都帮助我学习了 R 的命令和语法。我还参加了 Udemy 上的 R 在线编程课程，并从 No Starch 出版社 上购买了 R 之书。在阅读更多内容并观看 YouTube 视频后，我意识到我还应该安装 RStudio。Rstudio 是 R 语言的开源 IDE，易于在 Debian、Ubuntu、 Fedora 和 RHEL 上安装。它也可以安装在 MacOS 和 Windows 上。根据 RStudio 网站的说明，可以根据你的偏好对 IDE 进行自定义，具体方法是选择工具菜单，然后从中选择全局选项。R 提供了一些很棒的演示例子，可以通过在提示符处输入 demo() 从控制台访问。demo(plotmath) 和 demo(perspective) 选项为 R 强大的功能提供了很好的例证。我尝试过一些简单的 vectors 并在 R 控制台的命令行中绘制，如下所示。你可能想要开始学习如何将 R 和一些样本数据结合起来使用，然后将这些知识应用到自己的数据上得到描述性统计。我自己没有丰富的数据来分析，但我搜索了可以使用的数据集 datasets；有一个这样的数据集（我并没有用这个例子）是由圣路易斯联邦储备银行提供的 经济研究数据。我对一个题为“美国商业航空公司的乘客里程（1937-1960）”很感兴趣，因此我将它导入 RStudio 以测试 IDE 的功能。RStudio 可以接受各种格式的数据，包括 CSV、Excel、SPSS 和 SAS。数据导入后，我使用 summary(AirPassengers) 命令获取数据的一些初始描述性统计信息。按回车键后，我得到了 1949-1960 年的每月航空公司旅客的摘要以及其他数据，包括飞机乘客数量的最小值、最大值、四分之一位…

如何统计 Linux 中文件和文件夹/目录的数量
type: item
date: 2018-02-04T04:25:23+08:00
description: 嗨，伙计们，今天我们再次带来一系列可以多方面帮助到你的复杂的命令。 通过操作命令，可以帮助您计数当前目录中的文件和目录、递归计数，统计特定用户创建的文件列表等。在本教程中，我们将向您展示如何使用多个命令，并使用 ls、egrep、wc 和 find 命令执行一些高级操作。 下面的命令将可用在多个方面。为了实验，我打算总共创建 7 个文件和 2 个文件夹（5 个常规文件和 2 个隐藏文件）。 下面的 tree 命令的输出清楚的展示了文件和文件夹列表。# tree -a /opt /opt ├── magi │ └── 2g │ ├── test5.txt │ └── .test6.txt ├── test1.txt ├── test2.txt ├── test3.txt ├── .test4.txt └── test.txt 2 directories, 7 files 示例-1统计当前目录的文件（不包括隐藏文件）。 运行以下命令以确定当前目录中有多少个文件，并且不计算点文件（LCTT 译注：点文件即以“.” 开头的文件，它们在 Linux 默认是隐藏的）。# ls -l . | egrep -c '^-' 4 细节：ls ： 列出目录内容-l ： 使用长列表格式. ： 列出有关文件的信息（默认为当前目录）| ： 将一个程序的输出发送到另一个程序进行进一步处理的控制操作符egrep ： 打印符合模式的行-c ： 通用输出控制'^-' ： 以“-”开头的行（ls -l 列出长列表时，行首的 “-” 代表普通文件）示例-2统计当前目录包含隐藏文件在内的文件。 包括当前目录中的点文件。# ls -la . | egrep -c '^-' 5 示例-3运行以下命令来计数当前目录的文件和文件夹。 它会计算所有的文件和目录。# ls -l | wc -l 5 细节：ls ： 列出目录内容-l ： 使用长列表格式| ： 将一个程序的输出发送到另一个程序进行进一步处理的控制操作符wc ： 这是一个统计每个文件的换行符、单词和字节数的命令-l ： 输出换行符的数量示例-4统计当前目录包含隐藏文件和目录在内的文件和文件夹。# ls -la | wc -l 8 示例-5递归计算当前目录的文件，包括隐藏文件。# find . -type f | wc -l 7 细节 ：find ： 搜索目录结构中的文件-type ： 文件类型f ： 常规文件wc ： 这是一个统计每个文件的换行符、单词和字节数的命令-l ： 输出换行符的数量示例-6使用 tree 命令输出目录和文件数（不包括隐藏文件）。# tree | tail -1 2 directories, 5 files 示例-7使用包含隐藏文件的 tree 命令输出目录和文件计数。# tree -a | tail -1 2 directories, 7 files 示例-8运行下面的命令递归计算包含隐藏目录在内的目录数。# find . -type d | wc -l 3 示例-9根据文件扩展名计数文件数量。 这里我们要计算 .txt 文件。# find . -name "*.txt" | wc -l 7 示例-10组合使用 echo 命令和 wc 命令统计当前目录中的所有文件。 4 表示当前目录中的文件数量。# echo *.* | wc 1 4 39 示例-11组合使用 echo 命令和 wc 命令来统计当前目录中的所有目录。 第二个 1 表示当前目录中的目录数量。# echo */ | wc 1 1 6 示例-12组合使用 echo 命令和 wc 命令来统计当前目录中的所有文件和目录。 5 表示当前目录中的目录和文件的数量。# echo * | wc 1 5 44 示例-13统计系统（整个系统）中的文件数。# find / -type f | wc -l 69769 示例-14统计系统（整个系统）中的文件夹数。# find / -type d | wc -l 8819 示例-15运行以下命令来计算系统（整个系统）中的文件、文件夹、硬链接和符号链接数。# find / -type d -exec echo dirs \; -o -type l -exec echo symlinks \; -o -type f -links +1 -exec echo hardlinks \; -o -type f -exec echo files \; | sort | uniq -c 8779 dirs 69343 files 20 hardlinks 11646 symlinks via: https://www.2daygeek.com/how-to-count-the-number-of-files-and-f…

Linux输入统计神器——WhatPulse
type: item
date: 2014-10-26T05:13:35+08:00
description: 如果，你像我这样，是个对统计数据有着狂热癖好的人，那么你必须在你的计算机上安装这个小应用：WhatPulse此软件会追踪用户的击键、鼠标点击以及使用的带宽和系统开机时间。用户可以周期性地，或者手动上传击键的数量到服务器上，这称之为“脉动”。用户可以看到他们在所有加入该程序的人的领先选手排行板的所处位置，并且与他们自己国家的人作比较。用户也可以加入团队，在团队中他们可以和有着相同爱好的人作对比（去吧，Linux用户们！！）。软件分为免费的基础版和高级版，在基础版中你可以查看并检查所有的基本统计数据，而在高级版中你可以看到更多。该软件可用于Linux，Windows和Mac。在线注册第一步，你必须在WhatPulse网站注册帐号，或者也可以在你第一次启动WhatPulse客户端时出现的实用向导中创建帐号，以用于上传自己的统计数据（你也可以使用Facebook的帐号登录）。你会被提示需要登录，登录之后，你必须找到你的计算机名，这是因为你可以通过该帐号登录到多台计算机，而它们的数据都会上传到同一统计帐号。一旦你登入后，一个小小的W将出现在你的系统托盘中，那就对了，你已搞定！在Linux上安装WhatPulse官方网站在下载页提供了一个通用版本的.tar.gz归档压缩包（用于32位和64位）和一个debian包。就我个人而言，我已经在我的Mint Qiana上安装了debian包，在我的Arch LinuxAur包一点问题都没有。如果你想要使用通用版本安装，请记住：WhatPulse需要几个库文件。最主要的是QT，因为WhatPulse构建于QT平台。下面列出了软件安装需求：libQtCorelibQtWebKitlibqt4-sqllibqt4-sql-sqliteopenssl-devel (libssl-dev)libQtScript输入统计数据客户端需要设置相应的权限，以读取键盘/鼠标输入。运行包含的交互脚本.sh来设置这些权限。网络统计数据要启用网络测量，你也需要libpcap包来允许WhatPulse挂钩到网络通信。如果WhatPulse找不到libpcap，它会运行，但不会显示任何网络统计数据。使用应用程序默认情况下，WhatPulse会在登入图形会话后自动启动。点击系统托盘上的W图标，你将进入总览标签页，这里显示你机器上收集到的所有不同信息的鸟瞰图。例如，安装在你PC上的Linux版本、处理器型号、RAM、GPU、总点击次数、击键和带宽使用。点击这些信息下面的‘Pulse’，它将会上传这些收集到的数据到主服务器上。也可以选择自动‘Pulse’数据到服务器的时间，如每50.000点击，或者1GB下载量。要了解深度详情，你可以切换到每个类目的附属标签。例如，Input标签展示给你的是注册后一段时间内的击键的数量和点击次数。时间周期分为每日、每周、每月、每年以及全时。‘all’设置将显示程序安装以来的数据。在击键下面，你会找到键盘点击热图，它简单地使用冷暖色显示选定周期内各个键的使用状况，如上述截图所示。在图的下面，应用显示了选定周期内记录的点击总量。在Network标签下，可以查看到日常互联网使用情况。应用程序可以监控所有网络设备的带宽使用量，甚至也可以给你展示按国家分布的带宽使用情况。再次提醒，你可以使用顶部右边的箭头按钮浏览可用的数据。在网站上，你会看到与客户端上相同的所有统计数据。免责声明：上面的WhatPulse网站链接包含了我的参考链接，注册时可以使用该链接，这会让我的帐号在某天升级到高级帐号。via: http://linuxaria.com/recensioni/check-how-much-do-you-type-with-whatpulse-on-linux作者：linuxari 译者：GOLinux 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出