Stata talk @ Shandong University as TA

Actually, it’s a bit boring. This is the third time I’ve talked about Stata as TA… The only difference is that this time it is for graduate students, with only 10 listeners. Following pictures are the screenshots of my slide.

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:

Stata Optimization and Markowitz Efficient Frontier

In my two previous tweets, I used Stata and Python to fit Markowitz Efficient Frontier respectively: Use Stata to Fine the Markowitz Efficient Frontier & Use Stata to Fine the Markowitz Efficient Frontier. But Stata verison is imperfection, because I don’t know how to optimize in Stata. This problem was finally solved today: How to optimize in Stata.

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.

我觉得我的女神很漂亮,想把她的照片当成图表背景,该怎么做?(新篇)

在一年前的寒假我刚刚学习用 Stata 绘图的时候就做过这么一件事情:画图片,当时的结果不是很成功,画出来的照片看起来很“水墨风格”???详细绘图方法可以参考:我觉得我的女神很漂亮,想把她的照片当成图表背景,该怎么做?

使用 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 模仿一些。

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

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

本文狗粮较多,慎入。

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

如何去除刘沛老师 PPT 上的密码

记得在复习金融市场学(大三下学期的事情了)的时候特别讨厌刘沛老师给每个 PPT 都上了密码,不能编辑、不能打印。很是头疼。今天受这篇文章的启发:Remove password protection from Excel sheets using R,简单研究了一下,找到了去除 PPTX 文件密码的方法。

宅男女神网 8320 名模特数据分析报告

宅男女神网是我第一次爬的图片网站,用 Stata 爬的,后来就没有再爬过了,上面的图片比较乱,今天又上去看了一下,发现可以爬所有模特的数据。所以就爬下来玩了玩,模特挺多的,一共是 8320 个模特。

mmjpgcom 网站 2018 年年终报告

mmjpgcom 网站 2018 年年终报告

自己布置的作业果然还是要自己完成,这是另外一个妹子图网站:妹子图 - 每日分享高清美女图片。同样这个网站也有一个手机版:妹子图手机版。不过这个网站上图片的类别要进入图片主页才能看到,这样就比较费时间了,所以这次不爬分类了。结果发现,2018 年对这个网站来说也是惨淡的一年。

妹子图网站 2018 年年度报告

2018 年元旦的那个夜晚我就在和丁文亮一起爬妹子图网站。到今年,我也算是陪伴了妹子图这个网站一整年了,一年来是闲着没事就爬爬里面的图片。现在爬起图片网站来是毫无压力了。既然年终了,我就帮妹子图网站来个年度报告吧!

Your browser is out-of-date!

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

×