Build A Web Application Based on Shiny

Now that I have three R packages published on CRAN, I want to make a small tool to monitor the downloads of these three R packages. The best way for me is to build a shiny-based web application. This tweet tells how to build this shiny application.

hpackedbubble: Create Split Packed Bubble Charrts

This is my second R package submitted to CRAN, By binding R functions and ‘Highcharts’ library, ‘hpackedbubble’ provides a simple way to draw split packed bubble charts. I have already show the examples of this package at my last tweet. Just like these:

It Seems that Jwen Bought Macau Dollars at Wrong Time ...

I bought foreign exchange for my clients several time during my intership in ICBC. Recently, Jwen brought a lot of Macau dollars in order to pay tuition fees. So I want to the foreign exchange price of Macau dollars of the bank of China and see if I can save some money for Jwen.

How to Submit Your R package to CRAN!

After two days of tireless submission, I finally received the passed reply at noon today!

FMFE 包

这是为宋豪漳老师的金融工程和金融数学两门课程开发的R包,主要是关于期权定价、交易策略的一些函数和可视化的东西。(与其说这是我写的第一个 R 包,不如说这是我整理的第一个 R 包,这个 R 包里面的大部分函数都是参考其它的R包写的。)

渲染单词树!

这是坐火车的时候在写的一个简单的 R 包,可以用来绘制单词树。使用的是 Google 图表库的 js 文件。

Create Desktop Notifications From R

In a recent tweet: Create Desktop Notifications from R to improve your Data Science Productivity. I read about notifier package, it can create destop notifications from R.

使用 AmCharts + R 绘制中国地图

下午闲着无事写的一个绘制中国地图的 R 包。mapbrew。是个基于 htmlwidgets 的包。amCharts 是一个 JavaScript 图表库。我是基于 amCharts3 编写的这个 R 包。动态图表浏览可以参考该包的文档网站:使用 amCharts + R 绘制中国地图

针对 R 用户的 docker 简介

其实,我一直不知道 docker 具体怎么用…… 本文是学习 An Introduction to Docker for R Users 的笔记。

使用 reactR 编写基于 React 的 htmlwidgets

Authoring htmlwidgets powered by React with reactRreactR 提供的介绍文档,该文使用 sparklines 作为示例讲解了如何使用 reactR 编写自己的 html 控件。

Build Your Own React-based htmlwidget!!!

reactR 是一种新的建造 html 控件的工作流程。本文基于对 Build Your Own React-based htmlwidget 的学习,自己构建了一个绘制华夫图的 html 控件。

Who runs our country?

又是一年两会时,前几天看到了一个非常酷炫的可视化项目:Who runs China?。里面可视化了今年的人大代表相关的数据。我也想用 R 模仿一些。

全国人民代表大会是我国最高的权力机关,每年三月份,各地的人大代表们汇聚在北京共同探讨国家大事。

末末的魔鬼步伐——使用 pianobar 绘制琴键图表

忙里抽闲又写了个小 R 包,似乎由于一些不好解决的问题,我写的包都不能在 Windows 电脑上安装使用???这个包的功能是绘制一幅琴键图表。去年寒假我曾经用 Stata 干过类似的事情。

hchinamap:绘制中国及各个省市自治区地图的 html 控件

emmm… 自然这就是我的第二个基于 htmlwidgets 的 R 包了。很久之前,我就发现简数科技提供的中国地图示例非常不错,一直有想把它封装成 R 函数或者 Stata 命令的想法,今天这个想法终于在 R 上实现了,使用该包可以非常方便的创建中国地图以及各个省市自治区的地图。由于该包是基于 htmlwidgets 开发,所以你也可以在 R Markdown 和 shiny 中使用。

我和女朋友天天都在聊啥???

本文狗粮较多,慎入。

Plumber API 是什么?

RStudio 去年年底推出的新包plumber,可以把 r 代码转变成 API 请求。前一段时间我尝试学习了这个包,对这个包有了入门级的认识,后来因为发现如果你想把自己写的 Plumber API 部署,你需要购买 RStudio 公司的付费服务:RStudio Connect,显然我是买不起的。但是了解一下还是不错的,蛮有意思的一个 R 包。

首先我们使用 RStudio 新建一个 Plumber API,会自动生成一段示例代码:

R
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
#
# This is a Plumber API. You can run the API by clicking
# the 'Run API' button above.
#
# Find out more about building APIs with Plumber here:
#
# https://www.rplumber.io/
#

library(plumber)

#* @apiTitle Plumber Example API

#* Echo back the input
#* @param msg The message to echo
#* @get /echo
function(msg = "") {
list(msg = paste0("The message is: '", msg, "'"))
}

#* Plot a histogram
#* @png
#* @get /plot
function() {
rand <- rnorm(100)
hist(rand)
}

#* Return the sum of two numbers
#* @param a The first number to add
#* @param b The second number to add
#* @post /sum
function(a, b) {
as.numeric(a) + as.numeric(b)
}

这里展示了三个函数,第一个函数是文本输出,第二个函数是图片生成,第三个是加法函数,我们运行一下这个 Plumner API。

首先看第一个文本输出的:

这里可以把第一个函数变成一个 curl 请求:

Shell
1
curl -X GET "http://127.0.0.1:7307/echo?msg=czxa" -H  "accept: application/json"

czxa是我输入的参数,返回的结果是:

Shell
1
2
3
4
5
{
"msg": [
"The message is: 'czxa'"
]
}

再在终端试一下:

Shell
1
2
$ curl -X GET "http://127.0.0.1:7307/echo?msg=czxa" -H  "accept: application/json"
{"msg":["The message is: 'czxa'"]}

接下来尝试第二个 API:

curl 请求是:

Shell
1
curl -X GET "http://127.0.0.1:7307/plot" -H  "accept: application/json"

在终端运行一下:

Shell
1
2
3
4
5
$ curl -X GET "http://127.0.0.1:7307/plot" -H  "accept: application/json" -o plumberpng.png

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15175 100 15175 0 0 435k 0 --:--:-- --:--:-- --:--:-- 435k

然后就能得到这幅直方图了:

最后这个加法函数:

同样在终端测试一下:

Shell
1
2
3
$ curl -X POST "http://127.0.0.1:7307/sum?b=100&a=200" -H  "accept: application/json"

[300]

我再自己写个绘图函数:

R
1
2
3
4
5
6
7
8
#* 返回mtcars的相关系数图
#* @get /corr
#* @png
function(){
require(corrplot)
M <- cor(mtcars)
corrplot(M, order = "hclust", addrect = 2)
}

确实挺有趣呢!以后有需要再慢慢学习参考文档吧,另外希望今年双十一能入手一台服务器研究研究。

使用 reticulate 包调用 Python 获取微信好友数据

RStudio 公司推出的 reticulate 包可以直接在 R 脚本中调用 Python 代码,本文尝试使用 reticulate 包调用 Python 获取微信好友数据,并绘制好友的分布图。

我的高德地图地点收藏

自己有一个习惯,就是每到一个新地点,就会在手机里的高德地图 APP 上把这个地点标记一下,这样就能记录下自己的👣啦。

我的豆瓣观影报告

截止到昨天,我的豆瓣电影上终于收录了 500 部电影+电视剧,所以想爬下来研究研究。

计量经济学课程的得分分布!

虽然计量的最终分数还没完全确定,我现在只有一个初稿,于是就画了幅rainplot

Your browser is out-of-date!

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

×