首页 > 代码库 > 用R语言分析我的fitbit计步数据

用R语言分析我的fitbit计步数据

目标:把fitbit的每日运动记录导入到R语言中进行分析,画出统计图表来

已有原始数据:fitbit2014年每日的记录电子表格文件,示例如下:

日期消耗卡路里数距离攀爬楼层数久坐不动的分钟数不太活跃分钟数中度活跃分钟数非常活跃分钟数
2014年4月27日27361658111.847111113111781
2014年4月28日2514126229.0169101365976
2014年4月29日223183575.97912081297627
2014年4月30日224779595.68911961378324
2014年5月1日2563130149.2921110715613146
2014年5月2日2376100107.151711471649930
2014年5月3日2553130029.2825111915112050
2014年5月4日2370100907.231911731478238

1)转换xls为csv

首先要把xls电子表格导入,这里用最简单的办法,首先将xls另存为csv文件。为了输入命令方便,把列名都改为了英文。

2)将csv复制到工作目录中,或设置自己的工作目录,以让R环境可以找到相应的文件

将csv放在工作目录下,也可以用setwd("c:/myfitbit")设置自己的工作目录

3)导入csv文件到数据框

fitbit <- read.table("fitbit.csv", header=TRUE, sep=",", row.names="date")

也可以直接调用read.csv()函数,可以少填几个参数选项

4)看看数据的概貌

summary(fitbit)

可以看出每列数据的最小、最大、平均值、中位数等统计信息。

ka step dist floor
Min. :2031 Min. : 0 Min. : 0.000 Min. : 0.00
1st Qu.:2290 1st Qu.: 8593 1st Qu.: 6.135 1st Qu.: 11.00
Median :2408 Median :10515 Median : 7.570 Median : 16.00
Mean :2432 Mean :10152 Mean : 7.274 Mean : 17.35
3rd Qu.:2547 3rd Qu.:12665 3rd Qu.: 9.120 3rd Qu.: 20.00
Max. :3360 Max. :25779 Max. :18.410 Max. :165.00
sit inactive move active
Min. : 829 Min. : 0.0 Min. : 0.00 Min. : 0.00
1st Qu.:1119 1st Qu.:126.0 1st Qu.: 75.00 1st Qu.: 18.50
Median :1159 Median :146.0 Median : 93.00 Median : 37.00
Mean :1170 Mean :137.3 Mean : 91.89 Mean : 37.26
3rd Qu.:1188 3rd Qu.:163.0 3rd Qu.:113.00 3rd Qu.: 51.00
Max. :1440 Max. :238.0 Max. :222.00 Max. :137.00

5)看看数据框的结构,即各列分别是什么类型?

用str函数,str是structure单词的缩写。

str(fitbit)

‘data.frame‘: 243 obs. of 8 variables:
$ ka : num 2496 2513 2228 2336 2508 ...
$ step : num 12803 12955 8768 8971 12078 ...
$ dist : num 9.14 9.47 6.31 6.41 9.05 ...
$ floor : int 15 12 16 16 8 20 12 13 13 13 ...
$ sit : num 1161 1188 1234 1140 1153 ...
$ inactive: int 123 112 97 174 130 177 156 121 126 123 ...
$ move : int 98 67 72 113 108 141 99 118 65 73 ...
$ active : int 58 73 37 13 49 61 40 37 47 56 ...

 

6)画出每天步数的统计图

plot(fitbit$step)

要取出某列,可以用$符号。

如果每次都写上fitbit$太麻烦,就可以用attach(fitbit)把这个数据框的搜索路径加上,这样以后就可以输入step来表示fitbit$step了。

与attach()相对的是detach()函数,为了避免编程错误,最好成对出现。

7)看看走的步数与公里数有什么关系?

plot(setp, dist)

 

可以看出fitbit实际上就是一个非常简单的算法把步数换算为公里数,什么高级计算也没有。

8)给图加上标题

title("fitbit统计图")

9)用命令的方式将图形输出到jpeg文件中

jpeg("a.jpg") #将绘图送到jpeg图形文件中

plot(step, dist)

title("fitbit统计图")

dev.off() #最后要关闭设备

其它命令:dev.new()可以打开一个新的绘图窗口。dev.next(), dev.prev(), dev.set()...

当然在R交互环境中的图形上点右键,或用R环境的菜单功能,可以随便复制和输出图形。

10)看看步数的统计分布图

hist(step)

 

平均下来每天超过1万步,有些记录在fitbit同步时丢失,所以有20多天走了零步。

11)显示日期

日期是以"2014年10月28日"这样的字符串格式记录的,默认是不转换为日期型的,需要用as.Date函数转换一下。

month <- as.Date(row.names(fitbit), "%Y年%m月%d日")
plot(month, step)

这时可以看到水平轴已经显示的是日期了。

用R语言分析我的fitbit计步数据