极速安装软件的升级版 conda

喜欢科比的球迷应该熟悉这个词,mamba(曼巴)是科比的绰号,同时曼巴也是眼镜蛇的一种,黑曼巴是世界上移动速度最快的蛇。不过这篇文章里的 mamba 和科比没关系和蛇也没啥关系,说的是一个极速版 conda 。

大文本另类去重多种解法

今天分析数据的时候刚好碰到一个小问题,因为本身文件较大一开始想不出比较好的解决方法,睡个午觉醒来突然有了灵感,自认为目前解决的还算巧妙。

问题

一个 3 列 3,741,430 行的文本(行数比较多),第一列是字符,第二列是字符,第三列是数值,tab 分割。数据格式如下:

A23    B66    1234
C56 D34 2334
B66 A23 1234
D34 C56 2334
E78 F88 1234

这个文本虽然是3,741,430 行,但是其有效信息只有一半。因为A23 B66 1234B66 A23 1234 只是第二列和第一列互换了下位置。

需求

如何尽可能快的处理这个 3 列 3,741,430 行的文本,当某一行的第一列和另一行的第二列相同同时它的第二列又和那一行的第一列相同时,就只保留这两行中的一行即可(具体留哪行没有要求)。简单说就是如下的4行只保留2行:

A23    B66    1234
C56 D34 2334
B66 A23 1234 # 同第一行
D34 C56 2334 # 同第二行

要修改为

A23    B66    1234
D34 C56 2334

数据分析需要更好的问题

设计思维和更好的问题

这篇文章的主要内容来自 Roger Peng 最近的一篇博客 Tukey, Design Thinking, and Better Questions。读了之后有些启发便做简单记录。

John Tukey 是美国的数据学,快速傅里叶变换发明人。它在 1962 年发表过一篇题为 “The Future of Data Analysis” 的论文,其中有一句非常著名的话。

Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question, which can always be made precise.

Tukey 将数据分析的前三个阶段定义为如下三步:

  1. 识别一个问题 Recognition of problem
  2. 使用一个方法 One technique used
  3. 使用大量其他方式 Competing techniques used

用漫威数据学习 ggplot2 facet

本文主要内容翻译整理自:Easy multi-panel plots in R using facet_wrap() and facet_grid() from ggplot2,部分代码有修改。

ggplot2 一个非常强大的功能就是进行 multi-panel plots 的呈现,也就是我们常说的分面(facet)。通过使用 facet_wrap() 或者 facet_grid() 这样的函数我们就可以很方面的将单一的一个图变为多个相关的图。本文将通过一个具体的数据示例帮助你理解 ggplot2 分面的不同方法以及参数。

R 语言可视化之案例

qplot 使用

导入所需数据格式为 data.frame

data(mtcars)
df <- mtcars[, c("mpg", "cyl", "wt")]
head(df)

qplot() 基本用法

qplot(x, y=NULL, data, geom="auto",
xlim = c(NA, NA), ylim =c(NA, NA))

# geom 画什么图;main 题目;xlab,ylab xy 轴标签
# color 颜色;size 点大小;shape 点形状

R 语言可视化之原理概述篇

整体介绍

一张统计图形就是从数据到几何对象 (geometric object, 缩写为 geom, 包括点、线、条形等)的图形属性 (aesthetic attributes, 缩写为 aes, 包括颜色、形状、大小等)的一个映射。此外,图形中还可能包含数据的统计变换 (statistical transformation, 缩写为 stats), 最后绘制在某个特定的坐标系 (coordinate system, 缩写为 coord) 中,而分面 (facet, 指将绘图窗口划分为若干个子窗口)则可以用来生成数据中不同子集的图形。

要素

  • 数据 (data)
  • 映射 (mapping): 建立数据与图形元素的关系
  • 几何对象 (geom):对数据的渲染和展示
  • 统计变换 (stats)
  • 标度 (scale)
  • 坐标系 (coord)
  • 分面 (facet)
  • 主题 (theme)

多快好省用 R 处理数据

很早之前我一直都是使用命令行来处理软,cut,sed 再 grep 再加上终极 awk 基本上就可以随意的按照需求处理各种软件跑出来的文本文件了,再后来就要开始学习 python,python 学的怎么样了呢?呵呵。

虽然做过统计学课的助教,上课的时候用的也是 R 语言,但是博客里并没有几篇 R 相关的文章。印象中一篇是 给初学者的 R 语言介绍(写这篇文章当时是为了激发一点学生学习 R 语言的热情),另一篇是 R 必备基础知识(写这篇文章当时是因为在写 R 与统计学基础系列文章,就不得不总结一些 R 语言的基础知识)。

说实话,我本身对 R 还是非常喜欢和欣赏的,但是日常的使用需求并不高。就拿最基本的文本处理来说,基本上都可以在 shell 中进行随心所欲地增删改成,处理成很多 R 相关软件需要的文本格式,用需要的 R 包跑一两个命令就可以了。但是目前已经有点厌倦了这样的生活,我后期打算有机会的话用 R shiny 写一点网页工具给大家娱乐,也打算精进一下 R 的画图技能。这里就 have to 用 R 去做一些数据处理,于是就有了这样一系列文章。这篇是关于如何用 R 多快好省的进行数据处理。另外,说句题外话,从我这几天的实际处理数据情况来看,R 有些工作做起来,还是太慢了,也可能是我的业务不够娴熟吧。

R 语言必备基础知识

写着写着 R 与统计基础莫名其妙地又写开 R 基础了,一起写吧。

R 编程基础

算数运算

常用的+ - * \ ^ 可以直接在 console 中计算

计算函数

常用的log2(x) log10(x) exp(x) sin(x) tan(x) abs(x) sqrt(x) 也可以直接计算

变量赋值

a <- 3;a <- "b"赋值符号是<-, 使用 ls() 可以显示当前已经创建的对象

给初学者的 R 语言介绍

几点说明:

  1. 文档由 R Markdown[^1] 写成。

  2. 下文是我暂时能想到的一些内容,水平有限,供大家了解,大牛小神都可以出门右拐不用看哈。

  3. 写作初衷:目前在水中科院上海分院这边生物统计学助教,本文及后续一段时间里的 R 相关内容主要是为了供这门课的同学参考,同时也是自我总结的过程。


数据科学重要性

摩尔定律 [^2] 告诉我们计算机的计算能力每两年就会翻一倍,这使得数以百万计的计算机生成了大规模数据集。

海量的数据如何处理成了各行各业都需要面对和解决的问题;如何从海量信息中提取有效信息并总结出一般性的规律也值得我们去思考。

数据驱动下产生的这门学科,被我们称为数据科学(Data science),其中涉及到数据的收集、处理、分析和呈现四大方面。

2012 年,哈佛商业评论将 Data Scientist 定义为 21 世纪最性感的职业 ^3

『终极算法』摘抄笔记-贝叶斯学派

贝叶斯定理

对于贝叶斯学派来说,学习“仅仅是”贝叶斯定理的另外一个运用,将所有模型当作假设,将数据作为论据:随着你看到的数据越来越多,有些模型会变得越来越有可能性,而有些则相反,直到理想的模型渐渐突出,成为最终的胜者。

假设你半夜在一个陌生的星球上醒来。虽然你能看到的只是繁星闪烁的天空,你有理由相信太阳会在某个时间点升起,因为多数星球会自传并绕着自己的太阳转。所以你估计相应的概率应该会大于 1/2(比如说 2/3)。我们将其称为太阳会升起来的“先验概率”,因为这发生在看到任何证据之前。“先验概率”的基础并不是数过去这个星球上太阳升起的次数,因为过去你没有看到;它反映的是对于将要发生的事情,你优先相信的东西,这建立在你掌握的宇宙常识之上。但现在星星开始渐渐暗淡,所以你对于太阳会升起的信心越来越强,这建立于你在地球上生存的经历之上。你的这种信心源自“后验概率”,因为这个概率是在看到一些证据后得出的。天空开始渐渐变亮,后验概率又变得更大了

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×