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

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

日期

消耗卡路里数

距离

攀爬楼层数

久坐不动的分钟数

不太活跃分钟数

中度活跃分钟数

非常活跃分钟数

2014年4月27日

2736

16581

11.84

7

1111

131

117

81

2014年4月28日

2514

12622

9.01

6

910

136

59

76

2014年4月29日

2231

8357

5.97

9

1208

129

76

27

2014年4月30日

2247

7959

5.68

9

1196

137

83

24

2014年5月1日

2563

13014

9.29

21

1107

156

131

46

2014年5月2日

2376

10010

7.15

17

1147

164

99

30

2014年5月3日

2553

13002

9.28

25

1119

151

120

50

2014年5月4日

2370

10090

7.23

19

1173

147

82

38

1)转换xls为csv

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

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

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

3)导入csv文件到数据框

fitbit

也可以直接调用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环境的菜单功能,可以随便复制和输出图形。

看看步数的统计分布图

hist(step)

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

显示日期

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

month

plot(month, step)

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

只统计某个月份的数据

如果只统计9月份的数据,需要用到日期处理的函数。

monthData

自动生成统计图并保存为文件

现在要自动生成fitbit的10月的统计图,并保存为文件fitbit_month_10.jpg。

m

jpeg(paste0("fitbit_month_", m, ".jpg"))

monthData

plot(format(monthData$date,"%d"), monthData$step, type="l", xlab="date", ylab="steps", main=paste("2014年",m,"月步数统计图",sep=""))

dev.off()

分组统计每个月的平均步数

meanMonthStep

plot(meanMonthStep,type="b",main="月平均步数", xlab="month", ylab="step")

由于4、5月份的数据同步有故障,丢失了部分数据,所以平均步数偏低。

后来发现用tapply函数也可以得到同样的结果:

monthStep

实际上tapply将向量分割为组,然后对每组应用指定的函数。

显示一条平滑曲线

plot(fitbit$date, fitbit$step, type="l")

lines(lowess(fitbit$date, fitbit$step),col="blue")

identify()误别图上的点

plot(fitbit$date,fitbit$step,type="p", pch=16,ylim=c(0,30000))

identify(fitbit$date,fitbit$step)

鼠标在图形上点击,可以得到点的序号。我这里找了步数最少的两天,还有走得最多的一天。

查了一下为什么那两天走得最少?很可能忘了带计步器!

fitbit[c(96,182,269),c("date","step")]

date  step

96  2014-04-06  2285

182 2014-07-24 25779

269 2014-10-19  1633

下面的代码把12个月的图画到一个PDF文件中。

fitbit

# 一定要转换为日期类型

fitbit$date

PlotMonthGraph

{

monthData

plot(format(monthData$date,"%d"), monthData$step, type="l", ylim=c(0,25000), xlab="日期", ylab="步数", main=paste("2014年", m, "月",sep=""))

}

pdf("fitbit2014年计步数据统计图.pdf", family='GB1')

par(mfrow=c(4,3)) #4行,3列for(i in 1:12) PlotMonthGraph(i)

dev.off()

par(mfrow=c(1,1))

png("全年步数统计图.png")

plot(fitbit$date, fitbit$step, type="l", xlab="date", ylab="steps", main="2014年全年步数统计图")

dev.off()

r语言中trifit怎么用_用R语言分析我的fitbit计步数据相关推荐

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

    目标:把fitbit的每日运动记录导入到R语言中进行分析,画出统计图表来 已有原始数据:fitbit2014年每日的记录电子表格文件,全部数据点此下载,示例如下: 日期 消耗卡路里数 步 距离 攀爬楼 ...

  2. r语言中trifit怎么用_【r-介绍|分享】使用R进行生存分析

    导入数据 第一个代码块导入所需要的包以及survival包中的数据集veteran,包含两种肺癌治疗的随机试验. library(survival) library(ranger) library(g ...

  3. r语言中的shiny教程_如何使用Shiny在R中编写Web应用程序

    r语言中的shiny教程 新年快乐! 这个月我忙于撰写一些较大的文章,因此请在接下来的几周内查找这些文章. 对于本月的Nooks和Crannies,我想简要指出一个我一直在用它进行自我教育的出色R库. ...

  4. c语言中point的用法_关于C语言Switch语句,先学这些技巧够不够?

    一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...

  5. r语言中popsd和sd的区别_R语言中回归和分类模型选择的性能指标

    有多种性能指标来描述机器学习模型的质量.但是,问题是,对于哪个问题正确的方法是什么?在这里,我讨论了选择回归模型和分类模型时最重要的性能指标.请注意,此处介绍的性能指标不应用于特征选择,因为它们没有考 ...

  6. r语言中popsd和sd的区别_R语言与地图(一)

    原标题:R语言与地图(一) Hello, 大家好! 很高兴能借助这个平台每周5分钟与大家分享 一点儿数据分析 的那些事. 数据分析的工具很多,而R语言因其免费开源.易于解释和统计分析很受高校和业界的青 ...

  7. r语言中which的使用_大数据分析R语言RStudio使用教程

    RStudio是用于R编程的开源工具.如果您对使用R编程感兴趣,则值得了解RStudio的功能.它是一种灵活的工具,可帮助您创建可读的分析,并将您的代码,图像,注释和图解保持在一起. 在此大数据分析R ...

  8. 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型

    决策树是根据若干输入变量的值构造出一个适合的模型,以此来预测输出变量的值,并用树形结构展示出来.决策树主要有两个类别:分类树和回归树.分类树主要针对离散的目标变量,回归树则针对连续的目标变量.R语言中 ...

  9. R计算两列数据的相关系数_使用R语言中的corrplot来绘制相关系数矩阵热图

    R语言也是目前常用的数据分析编程语言之一,目前经过使用者.科学家们的开发,其功能也比较强大.本文就使用R语言中的corrplot来绘制相关系数矩阵热图进行介绍. 下面以波士顿Boston的房价数据为例 ...

最新文章

  1. java abort_Java中“...”的使用
  2. js中数组定义Array
  3. 零基础学习嵌入式:嵌入式linux视频教程免费分享
  4. 【转载】阿里数据技术大图详解
  5. c语言—数组详解(建议收藏)
  6. C语言基础--从零开始初识语言(多图超详解|超万字教程)
  7. 查找某款app的企业旗下其他app
  8. pandas批量拆分、合并EXCEl
  9. UDS(七)应用层 28/85
  10. PS如何修改文字,数字以及各种常用操作
  11. 二极管三极管基础PN结详解
  12. 美国纽约大学计算机专业排名,纽约大学计算机科学排名怎么样?专业好不好?
  13. Unity游戏开发日记(一):独自开发2d横板游戏:Small man(MainMenu主界面)基本构建
  14. 离散数学数理逻辑部分【1】
  15. Kylin操作系统读不到U盘解决方法
  16. 访问时发生了共享冲突是什么意思_【CUDA 基础】5.1 CUDA共享内存概述
  17. 【激光SLAM】 01 cartographer环境建立以及建图测试(详细级)
  18. 微信底部导航栏动画实现
  19. 拉塞尔不变性定理 ( LaSalle's invariance principle )
  20. 项目需求规格说明书(国标) 一般格式

热门文章

  1. C# 关于默认打印纸张的设置
  2. java毕业设计——基于java+Socket+sqlserver的网络通信系统设计与实现(毕业论文+程序源码)——网络通信系统
  3. 信息检索 | 网页检索基本技能
  4. 【数字几何处理】参数化:Tutte‘s embeddingLeast Squares Conformal Mappings 源码+介绍
  5. 导出iPhone/iPad中的Safari书签
  6. 区块链投资机构风起云涌 Mixed Elements为何能更胜一筹!
  7. 非虫 android应用逆向,android逆向-ARM汇编基础-非虫笔记
  8. 什么是JMS(消息服务)
  9. 图像配准(image registration)与图像融合(image fusion)
  10. 微信小程序 简单易用 下拉框组件