内容

1的tidyverse

我们将采用一种特殊的方法来进行数据输入、争论和基本分析,称为“整理诗”。首先加载tidyverse包中。

库(tidyverse)

我们将介绍以下函数:

2练习1:BRFSS调查数据

我们将探索疾病控制与预防中心通过其广泛的行为风险因素监测系统(BRFSS电话调查。查看链接获取更多信息。我们将查看数据的一个子集。

  1. 使用file.choose ()找到文件“BRFSS-subset.csv”的路径

    路径< - file.choose ()
  1. 使用read_csv (),分配给变量BRFSS.然后可视化前几行。

    brfss < - read_csv(路径)
    ## col_integer(), ## Weight = col_double(), ## Sex = col_character(), ## Height = col_double(), ## Year = col_integer() ##
    BRFSS.
    一口咬:20000 x 5 # #年龄体重性别高度年# # < int > <双> <空空的> <双> < int > 31 48.98798女性157.48 # # 1990 # 57 # 2 81.64663女性157.48 1990 # # 1990 # # 43 80.28585男性177.80 1990 170.18 72 70.30682男性31 49.89516女性154.94 # # 1990 # # 6 58 54.43108女45 69.85323 154.94 1990 # # 7男男性180.34 68.03886 172.72 1990 # # 8 371990 ## 9 33 65.77089女170.18 1990 ## 10 75 70.76041女152.40 1990 ## ## #…有19,990多行
  2. 从数据来看……

    • 样本中有多少人

    • 测量了哪些变量?

    • 你可以猜测用于使用的单位,例如重量和身高吗?

  3. 整洁诗用了一个“管子”,% > %将数据从一个命令发送到另一个命令。有少量用于操作数据的关键函数。我们将使用group_by ()用…对数据进行分组,然后总结(n = n ())计算每个组中的观察数。

    brfss%group_by(性别)%>%概述(n = n())
    ## # A tibble: 2 x 2 ## Sex N ##   ## 1 Female 12039 ## 2 Male 7961
  4. 使用group_by(性),总结(N = N ())总结每年和性别的人数。

    brfss %>% group_by(Year, Sex) %>% sum (N = N ())
    ## # A tibble: 4 x 3 ## # group: Year [?## Year Sex N ##    ## 1 1990 Female 5718 ## 2 1990 Male 4282 ## 3 2010 Female 6321 ## 4 2010 Male 3679
  5. 通过添加论证来计算每年的平均年龄和性别年龄= mean(Age, na.rm=TRUE)总结()

    brfss %>% group_by(Year, Sex) %>% sum (N = N (), Age = mean(Age, na.rm=TRUE))
    ## # A tibble: 4 x 4 ## # group: Year [?## Year Sex N Age ## #     ## 1 1990 Female 5718 46.23327 ## 2 1990 Male 4282 43.90552 ## 3 2010 Female 6321 57.08824 ## 4 2010 Male 3679 56.24993
  6. 一年作为整数向量输入,而Sex作为字符向量输入。实际上,这两个因素都有。使用变异()因素()更新这些列的类型。重新分配更新的胫骨BRFSS.

    brfss %>% mutation (Year = factor(Year), Sex = factor(Sex))
    ###一毛面:20,000 x 5 ##年龄重量性高年度##      ## 1 31 48.98798女性157.48 1990 ## 2 57 81.64663女性157.48 1990##3 43 80.28585男性177.80 1990 1990 ## 4 72 70.30682男性170.18 1990 ## 5 31 49.89516女性154.94 1990 ## 6 58 54.43108女性154.94 1990 ## 7 45 69.85323男性172.72 1990#8 37 68.03886男性180.34 1990 ## 933 65.77089女170.18 1990 1990 ## 10 75 70.76041女性152.40 1990 1990 ## ...... 19,990更多的行
    brfss <- brfss %>% mutation (Year = factor(Year), Sex = factor(Sex))
  7. 有几个其他管道可用(另见magrittr包)。%$%提取一个列。我们来看看水平()我们创造的因素。

    brfss %$% Sex %>% levels()
    ##[1]“女性”“男性”
    brfss %$% Year%>% levels()
    ## [1]“1990”“2010”
  8. 通常最好是尽快“清理”数据。访问帮助页面read_csv ?,看col_types =参数和帮助页面关口?col_factor ?。以正确的格式输入数据,性别和年份为因素

    col_types <- cols(Age = col_integer(), Weight = col_double(), Sex = col_factor(c("Female", "Male")), Height = col_double(), Year = col_factor(c("1990", "2010"))
    ###一毛面:20,000 x 5 ##年龄重量性高年度##      ## 1 31 48.98798女性157.48 1990 ## 2 57 81.64663女性157.48 1990##3 43 80.28585男性177.80 1990 1990 ## 4 72 70.30682男性170.18 1990 ## 5 31 49.89516女性154.94 1990 ## 6 58 54.43108女性154.94 1990 ## 7 45 69.85323男性172.72 1990#8 37 68.03886男性180.34 1990 ## 933 65.77089女170.18 1990 1990 ## 10 75 70.76041女性152.40 1990 1990 ## ...... 19,990更多的行
    brfss % > %总结()
    # # # #年龄体重性别高度最低:18.00分钟。:34.93女:12039分钟:105.0 # #瞿。1:36.00瞿。1:61.69男:7961年1日曲:162.6 # #值:51.00中值:72.57中值:168.0 # #的意思是:50.99的意思是:75.42的意思是:169.2 # #第三曲。:65.00第三曲。:86.18第三曲。:177.8 # # Max。: 99.00马克斯。: 278.96马克斯。: 218.0 # # NA: 139 NA: 649 NA的:184 # # # #年# # 1990:10000 2010:10000  ## ## ## ## ##
  9. 使用筛选()创建仅由1990年观察组成的数据的子集(一年在由单个元素组成的集合中1990,1990年% %)。(可选)将此保存到新变量BRFSS_1990.

    brfss %>% filter(1990年第%年)
    一口咬:10000 x 5 # #年龄体重性别高度年# # < int > <双> < fctr > <双> < fctr > 31 48.98798女性157.48 # # 1990 # 57 # 2 81.64663女性157.48 1990 # # 1990 # # 43 80.28585男性177.80 1990 170.18 72 70.30682男性31 49.89516女性154.94 # # 1990 # # 6 58 54.43108女45 69.85323 154.94 1990 # # 7男男性180.34 68.03886 172.72 1990 # # 8 371990 ## 9 33 65.77089女170.18 1990 ## 10 75 70.76041女152.40 1990 ## ## #…还有9990行
    brfss_1990 <- brfss %>% filter(Year %in% 1990)
  10. 管子这个子集t.test ()询问体重是否取决于性别。第一个论点T.Test.是描述因变量和自变量之间关系的“公式”;我们用这个公式体重~性。第二个论点T.Test.要使用的数据集——指定来自管道的数据data =。

    brfss %>% filter(Year %in% 1990) %>% t.test(Weight ~ Sex, data = .)
    # # # #韦尔奇两样本t检验# # # #数据:重量按性别# # t = -58.734, df = 9214, p值< 2.2 e-16 # #备择假设:真正的均数差不等于0 # # 95%置信区间:-16.90767 - -15.81554 # # # #样本估计:# #意味着女性意味着组男性组# # 64.81838 - 81.17999

    1990年和2010年男性(或女性)的体重有什么不同?

  11. 使用箱线图()绘制出男性个体的权重。你能转换权值吗,比如,在作图之前取平方根?解释结果。对前一个问题的t检验做类似的箱线图。

    brfss %>% filter(Sex %in% "Male") %>% boxplot(Weight ~ Year, data = .)

    brfss %>% filter(Sex %in% "Male") %>% mutate(SqrtWeight = sqrt(Weight)) %>% boxplot(SqrtWeight ~ Year, data = .)

  12. 使用嘘()绘制1990年女性个体的权重直方图。从?嘘,该函数预计值矢量,所以使用%$%选择重量柱和管道嘘()

    brfss %>% filter(年份%in% "1990",性别%in% "Female") %$% Weight %>% hist(main="1990 Female Weight")

3.练习2:所有表型数据

该数据来自一个(旧的)急性淋巴细胞白血病微阵列数据集。

选择包含ALL(急性淋巴细胞白血病)患者信息的文件,并使用read.csv ();为read.csv (), 用row.names = 1指示第一列包含行名。

path < -  file.choose()#查找All-Penodata.csv
stopifnot(file.exists(路径))pdata < -  read_csv(路径)
##警告:缺少填写的列名:'x1'[1]
##使用列规范解析:## cols(## .default = col_character(), ## age = col_integer(), ## ' t(4;11) ' = col_logical(), ## ' t(9;22) ' = col_logical(), ## cyto。Normal = col_logical(), ## CCR = col_logical(), ## relapse = col_logical(), ## transplant = col_logical() ##
##请参阅全列规范的规格(...)。
pdata
食用:128 x 22 X1鳕鱼诊断性别年龄BT缓解CR日期。cr # # <空空的> <空空的> <空空的> <空空的> < int > <空空的> <空空的> <空空的> < >从而向# # 1 01005 1005 5/21/1997 53 B2 cr cr 8/6/1997 # # 2 01010 1010 3/29/2000 19 B2 cr cr 6/27/2000 # # 3 03002 3002 6/24/1998 F 52 B4 cr cr 8/17/1998 # # 4 04006 4006 7/17/1997 38 B1 cr cr 9/8/1997 # # 5 04007 4007 7/22/1997 57 B2 cr cr 9/17/1997 # # 6 04008 4008 7/30/1997 17 B1 cr cr9/27/1997 ## 10 08001 8001 1/15/1997 m 40 b2 cr cr 1/ 17/2000 ## 9 06002 6002 3/19/1997 m 15 b2 cr cr 6/9/1997 ## 10 08001 8001 1/15/1997 m 40 b2 cr cr 3/26/1997 ## ## #…多118行,多13个变量:' t(4;11) ' , ## # ' t(9;22) ' , cyto。Normal , citog , mol.biol , ' fusion ## # protein ' , MDR , kinet , CCR ,复发, ## #移植, f.u , ' date last seen ' 

使用选择()选择一些列,例如:Mol.biol.英国电信。使用筛选()过滤仅包含40岁以上的女性。

pdata%>%选择(mol.biol,bt)
###缩放:128 x 2 ## mol.biol bt ##   ## 1 bcr / abl b2 ## 2 neg b2 ## 3 bcr / abl b4 ## 4 All1 / AF4 B1##5 neg b2 ## 6 neg b1 ## 7 neg b1 ## 8 neg b1 ## 9 neg b2 ## 10 bcr / abl b2 ### ...更多行
PDATA%>%过滤器(%“f”,年龄> 40)
一口咬:17 x 22 # # X1鳕鱼诊断性年龄BT缓解CR # # <空空的> <空空的> <空空的> <空空的> < int > <空空的> <空空的> < >从而向# # 1 03002 3002 6/24/1998 F 52 B4 CR CR # # 2 16004 16004 4/19/1997 F 58 B1 CR CR # # 3 16009 16009 43 B2 7/11/2000 F < NA > < NA > # # 4 19005 19005 11/15/1997 F 48 B1 CR CR # # 5 20002 20002 5/9/1997 F 58 B2 CR CR # # 6 24005 24005 1/3/1997 F 45 B1 CR CR## 7 24011 24011 8/5/1997 F 51 B2  DEATH IN INDUCTION ## 8 26003 26003 2/18/1998 F 49 B4 CR CR ## 9 27004 27004 10/20/1998 F 48 B2 REF REF ## 10 28007 28007 2/21/1997 F 47 B3 CR CR ## 11 28021 28021 3/18/1998 F 54 B3 CR DEATH IN CR ## 12 28032 28032 9/26/1998 F 52 B1 CR CR ## 13 30001 30001 1/16/1997 F 54 B3  DEATH IN INDUCTION ## 14 49006 49006 8/12/1998 F 43 B2 CR CR ## 15 57001 57001 1/29/1997 F 53 B3  DEATH IN INDUCTION ## 16 62001 62001 11/11/1997 F 50 B4 REF REF ## 17 02020 2020 3/23/2000 F 48 T2  DEATH IN INDUCTION ## # ... with 14 more variables: date.cr , `t(4;11)` , ## # `t(9;22)` , cyto.normal , citog , mol.biol , `fusion ## # protein` , mdr , kinet , ccr , relapse , ## # transplant , f.u , `date last seen` 

使用Mol.biol.列筛选数据以包含集中的个人c(“BCR / ABL”、“否定”)(例如,Mol.biol.等于BCR / ABL或者否定))

Bcrabl <- pdata %>% filter(mol。% c(“BCR/ABL”,“NEG”))

我们想通过突变来整理数据Mol.biol.成为一个因素。我们还想让英国电信列(B-或t细胞亚型)B或者T,使用Substr(BT,1,1)(即,对于的每个元素英国电信,以字母1开头的那些乘坐的子字符串,然后去第1封信 - 第一个字母)

bcrabl <- bcrabl %>% mutation (mol.biol = factor(mol.biol), B_or_T = factor(substr(BT, 1,1)))

在每个BCR/ABL和NEG组中有多少bcrabl样本有B-和t细胞类型?

bcrabl % > % group_by (B_or_T mol.biol) % > %总结(N = N ())
###ATIBBLE:3 x 3 ###组:b_or_t [?] ## b_or_t mol.biol n ##    ## 1 b bcr / abl 37 ## 2 b neg 42## 3 T neg 32

计算BCR / ABL和NEG治疗组中的男性和女性的平均年龄。

bcrabl %>% group_by(sex, mol.biol) %>% summarize(age = mean(age, na.rm=TRUE))
## # A tibble: 5 x 3 ## #组:性[?## sex mol.biol age ##    ## 1 F BCR/ABL 39.93750 ## 2 F NEG 30.42105 ## 3 M BCR/ABL 40.50000 ## 4 M NEG 27.21154 ## 5  NEG NaN

使用t.test ()比较BCR / ABL与Neg群体中个体的年龄;使用效果可视化结果箱线图()。在这两种情况下,使用公式接口和引用传入的数据集。参考帮助页面?T.Test.再做一次测试,假设两组的年龄差异是相同的。测试输出的哪些部分发生了变化?

Bcrabl %>% t.test(age ~ mol.biol, .)
## ## welch两个样本t-test ## ##数据:通过Mol.biol ## t = 4.8172,df = 68.529,p值= 8.401e-06 ##替代假设:意味着的真实差异不是等于0 ## 95%的置信区间:## 7.13507 17.22408 ##样本估计:##在BCR / ABL中的均值在Group Neg ## 40.25000 28.07042
Bcrabl %>% boxplot(年龄~ mol.biol, .)