日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用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環境的菜單功能,可以隨便復制和輸出圖形。

?

看看步數的統計分布圖

hist(step)

?

平均下來每天超過1萬步,有些記錄在fitbit同步時丟失,所以有20多天走了零步。

顯示日期

日期是以"2014年10月28日"這樣的字符串格式記錄的,默認是不轉換為日期型的,需要用as.Date函數轉換一下。

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

這時可以看到水平軸已經顯示的是日期了。

只統計某個月份的數據

如果只統計9月份的數據,需要用到日期處理的函數。

monthData <- fitbit[as.double(format(fitbit$date, "%m"))==9, ]

自動生成統計圖并保存為文件

現在要自動生成fitbit的10月的統計圖,并保存為文件fitbit_month_10.jpg。

m <- 10

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

monthData <- fitbit[as.double(format(fitbit$date, "%m"))==m, ]

plot(format(monthData$date,"%d"), monthData$step, type="l", xlab="date", ylab="steps", main=paste("2014年",m,"月步數統計圖",sep=""))

dev.off()

?

分組統計每個月的平均步數

meanMonthStep <- aggregate(fitbit$step, by=list(format(fitbit$date,"%m")), mean)

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

?

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

后來發現用tapply函數也可以得到同樣的結果:

monthStep <- tapply(fitbit$step, format(fitbit$date,"%m"), mean)

實際上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 <- read.csv("fitbit2014.csv") # 一定要轉換為日期類型 fitbit$date <- as.Date(fitbit$date)PlotMonthGraph <- function(m) {monthData <- fitbit[as.double(format(fitbit$date, "%m"))==m, ]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语言分析我的fitbit计步数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩手机看片 | 国产成人精品一区二区三区四区 | 91嫩草视频在线观看 | 肉色超薄丝袜脚交一区二区图片 | www.伊人网 | 天天看视频| 国产搞逼视频 | 婷婷综合在线 | 久久综合久久鬼色 | 午夜视频91 | 亚洲av无码一区二区乱子伦as | 免费成人国产 | 国色综合 | 最新黄色av | 91调教打屁股xxxx网站 | 国产破处在线 | 国产97免费视频 | 日韩国产高清在线 | 亚洲一区视频在线播放 | 精品毛片在线观看 | 日韩免费网站 | 亚洲高清视频在线观看 | 久久五十路 | 97毛片 | 麻豆免费av | 中国一极毛片 | 精品在线视频一区二区 | 久色精品 | 亚洲视频精品 | 国产精品国产三级国产aⅴ9色 | 欧美在线影院 | 国产黄色大片 | 射影院 | 亚洲高清在线观看视频 | 日韩精品一区二区三区在线播放 | 精品久久久久久久久久久久久久久久久久 | 日韩欧美视频在线播放 | 国产成人亚洲一区二区 | 天天色天天干天天色 | 亚洲一区欧美一区 | 日韩成人免费在线视频 | 久久国产网站 | 一区二区三区视频在线 | 人人人超碰 | 午夜在线你懂的 | 精品视频一区二区在线观看 | 久久欧美 | jlzzjlzz国产精品久久 | 99视频一区二区 | 乌克兰黄色片 | 日韩最新网址 | 天天干,天天爽 | 黄色片成人 | 国产高清视频在线播放 | av色站| 黄色片在线免费 | 在线播放不卡 | 精品国产一区一区二区三亚瑟 | 麻豆国产精品视频 | 国产精品久久久久久久久久久久久久久久 | 美女高潮黄又色高清视频免费 | 天天摸日日摸 | 肉色欧美久久久久久久免费看 | 蜜桃视频一区二区三区 | 武侠古典av| 色亚洲视频 | 国产又大又长又粗 | 日老女人视频 | 激情爱爱网 | 中国妇女做爰视频 | 欧美日韩另类一区 | 尤物av在线 | 性色av一区二区三区红粉影视 | 国产又黄又大又爽 | 亚洲精品a区 | 国产精品无遮挡 | 欧美成人怡红院 | 波多野结衣大片 | 国产丝袜在线视频 | 国产精品久久久久久中文字 | 免费一级特黄3大片视频 | 亚洲最大综合网 | 成人a√ | 国产高清色 | 欧美在线免费视频 | 熟女肥臀白浆大屁股一区二区 | 精品一区二区三区在线视频 | 色播在线观看 | wwwwww日本 | www黄色av | 欧美123区 | 黄色欧美在线 | 精品99在线观看 | 91香蕉国产在线观看软件 | 特级淫片aaaaaaa级附近的 | 欧美一区二区三区成人久久片 | 高h免费视频 | 久99热| 网友自拍一区 |