内容

1练习1:BRFSS调查数据

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

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

    路径<- file.choose()
  1. 使用以下命令输入数据read.csv (),赋值给一个变量brfss

    <- read.csv(path)
  2. 使用命令类()头()昏暗的()总结()来探索数据。

    • 测量了哪些变量?

    • 你能猜出使用的单位吗?例如,体重和身高?

    分类(brfss)头(brfss)暗淡(brfss)摘要(brfss)
  3. 使用运算符提取“性别”一列,并使用该运算符总结调查中的男性和女性人数表().对“Year”和“Year”都做同样的处理而且一年

    表(美元brfss性)
    ## ##女男## 12039 7961
    表(brfss年美元)
    ## ## 1990 2010 ## 10000 10000
    表(brfss性,美元brfss美元)
    ## ## 1990 2010 ##女5718 6321 ##男4282 3679
    with(brfss, table(Sex, Year)) #相同,但更简单
    ##年##性别1990 2010 ##女5718 6321 ##男4282 3679
  4. 使用总()总结各组的平均权重。每组的权重中位数是多少?那。数量每组的观察结果?

    with(brfss, aggregate(Weight, list(Year, Sex), mean, na.rm=TRUE))
    ##组。1组。2 x ## 1 1990女64.81838 ## 2 2010女72.95424 ## 3 1990男81.17999 ## 4 2010男88.84657
    with(brfss, aggregate(Weight, list(Year=Year, Sex=Sex), mean, na.rm=TRUE))
    ##性别x ## 1 1990女64.81838 ## 2 2010女72.95424 ## 3 1990男81.17999 ## 4 2010男88.84657
  5. 使用一个公式总()函数来描述年龄、性别和体重之间的关系

    aggregate(体重~年份+性别,brfss,平均值)#相同,但信息量更大
    ##性别体重## 1 1990年女64.81838 ## 2 2010年女72.95424 ## 3 1990年男81.17999 ## 4 2010年男88.84657
    总(。~年份+性别,brfss,平均值)#所有变量
    ##年性别年龄体重身高## 1 1990女46.09153 64.84333 163.2914 ## 2 2010女57.07807 73.03178 163.2469 ## 3 1990男43.87574 81.19496 178.2242 ## 4 2010男56.25465 88.91136 178.0139
  6. 创建一个只包含1990年观测值的数据子集。对男性和女性的体重进行t检验(“‘体重’作为‘性别’的函数”,体重~性别

    brfss_1990 = brfss[brfss$Year == 1990,] t.test(体重~性别,brfss_1990)
    ## ## Welch Two样本t-检验## ##数据:权重按性别## t = -58.734, df = 9214, p值< 2.2e-16 ##替代假设:均值的真实差异不等于0 ## 95%置信区间:## 16.90767 -15.81554 ##样本估计:##组中均值女性组中均值男性## 64.81838 81.17999
    t.test(体重~性别,brfss,子集=年份= 1990)
    ## ## Welch Two样本t-检验## ##数据:权重按性别## t = -58.734, df = 9214, p值< 2.2e-16 ##替代假设:均值的真实差异不等于0 ## 95%置信区间:## 16.90767 -15.81554 ##样本估计:##组中均值女性组中均值男性## 64.81838 81.17999

    1990年和2010年男性(或女性)的体重有什么不同?查看帮助页面t.test.formula ?.有没有办法进行t检验brfss无需显式地创建对象brfss_1990

  7. 使用箱线图()来绘制男性个体的体重。你能变换重量吗,例如,根号(重量)~年?解释结果。对前一个问题的t检验做类似的箱线图。

    箱线图(体重~年,brfss,子集=性别=“男性”,主体=“男性”)

  8. 使用嘘()绘制1990年女性个体体重的直方图。

    hist(brfss_1990[brfss_1990$性别== "女性","体重"],main="女性,1990",xlab="体重")

2练习2:所有表型数据

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

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

path <- file.choose() #查找ALL-phenoData.csv
Stopifnot (file.exists(path)) pdata <- read.csv(path, row.names=1)

查看帮助页面read.delim ?用于输入选项。练习使用read.csv ?;你能猜到为什么吗?探索你创建的对象的基本属性,例如…

类(pdata)
## [1] "data.frame"
colnames (pdata)
# #[1]“鳕鱼”“诊断”“性”“年龄”# #[5]“缓解”“CR”“BT日期。Cr " ## [9] "t.4.11。"“t.9.22。””阶段。Normal " "citog" ## [13] "mol.biol" "融合。蛋白质" "mdr" "kinet" ## [17] "ccr" "复发" "移植" "f.u" ##[21] "日期。最后一次。见"
暗(pdata)
## [1] 128 21
头(pdata)
## cod诊断性别年龄BT缓解CR日期cr t.4.11。t.9.22。## 01005 1005 1997年5月21日M 53 B2 CR CR 1997年6月6日假真## 01010 1010 2000年3月29日M 19 B2 CR CR 2000年6月27日假假## 03002 3002 1998年6月24日F 52 B4 CR CR 1998年8月17日NA NA ## 04006 4006 1997年7月17日M 38 B1 CR CR 1997年9月8日真假## 04007 4007年7月22日M 57 B2 CR CR 1997年9月17日假假## 04008 4008 1997年7月30日M 17 B1 CR CR 1997年9月27日假假## # cyto。正常的摩尔生物融合。蛋白质mdr kinet ccr ## 01005假t(9;22) BCR/ABL p210 NEG dyploid假## 01010假简单alt. NEG  POS dyploid假## 03002 NA  BCR/ABL p190 NEG dyploid假## 04006假t(4;11) ALL1/AF4  NEG dyploid假## 04007假del(6q) NEG  NEG dyploid假## 04008假复杂alt. NEG  NEG dyploid超d。错误##复发移植f.u date.last.seen ## 01005假真BMT / CR中死亡 ## 01010真假REL 2000年8月28日## 03002真假REL 1999年10月15日## 04006真假REL 1998年1月23日## 04007真假REL 1997年4月11日## 04008真假REL 1997年12月15日
总结(pdata性美元)
## F M NA的## 42 83 3
总结(pdata cyto.normal美元)
##模式FALSE TRUE NA's ##逻辑69 24 35

提醒自己有各种方法来子集和访问data.frame的列

pdata [1:5, 3:4)
性别年龄## 01005 M 53 ## 01010 M 19 ## 03002 F 52 ## 04006 M 38 ## 04007 M 57
pdata [1:5]
## cod诊断性别年龄BT缓解CR日期cr t.4.11。t.9.22。## 01005 1005 1997年5月21日M 53 B2 CR CR 1997年6月6日假真## 01010 1010 2000年3月29日M 19 B2 CR CR 2000年6月27日假假## 03002 3002 1998年6月24日F 52 B4 CR CR 1998年8月17日NA NA ## 04006 4006 1997年7月17日M 38 B1 CR CR 1997年9月8日真假## 04007 4007年7月22日M 57 B2 CR CR 1997年9月17日假假## cyto。正常的摩尔生物融合。mdr蛋白其ccr # # 01005假t (9; 22) BCR / ABL p210 NEG dyploid假# # 01010假简单的alt。NEG < NA > POS dyploid假# # 03002 NA < NA > BCR / ABL p190 NEG dyploid假# # 04006假t (4, 11) ALL1 / AF4 < NA > NEG dyploid假# # 04007假德尔(6问)底片< NA > NEG dyploid假# #复发移植f.u date.last.seen死亡# # 01005假真BMT / CR < NA > # # 01010真的假REL 8/28/2000 # # 03002真的假的REL 10/15/1999 # # 04006真的假的REL 1/23/1998 # # 04007真的假的REL11/4/1997
头(pdata [3:5])
##性别年龄BT ## 01005 M 53 B2 ## 01010 M 19 B2 ## 03002 F 52 B4 ## 04006 M 38 B1 ## 04007 M 57 B2 ## 04008 M 17 B1
Tail (pdata[, 3:5], 3)
##性别年龄BT ## 65003 M 30 T3 ## 83001 M 29 T2 ## LAL4  NA T
头(pdata时代美元)
## [1] 53 19 52 38 57 17
头(pdata性美元)
## [1] M M F M M M M ##级别:F M
Head (pdata[pdata$年龄> 21,])
## cod诊断性别年龄BT缓解CR日期cr t.4.11。t.9.22。## 01005 1005 1997年5月21日M 53 B2 CR CR 1997年8月6日假真## 03002 3002 1998年6月24日F 52 B4 CR CR 1998年8月17日NA NA ## 04006 4006 1997年7月17日M 38 B1 CR CR 1997年9月8日真假## 04007 4007 1997年7月22日M 57 B2 CR CR 1997年9月17日假假## 08001 8001 1997年1月15日M 40 B2 CR CR 1997年3月26日假假## 08011 8011 1998年8月21日M 33 B3 CR CR 1998年10月8日假假## cyto。正常的摩尔生物融合。mdr蛋白其ccr # # 01005假t (9; 22) BCR / ABL p210 NEG dyploid假# # 03002 NA < NA > BCR / ABL p190 NEG dyploid假# # 04006假t (4, 11) ALL1 / AF4 < NA > NEG dyploid假# # 04007假德尔(6问)底片< NA > NEG dyploid假# # 08001假德尔(p15) BCR / ABL p190 NEG < NA >假# # 08011假德尔(p15 / p16) BCR / ABL p190 / p210 NEG dyploid假# #复发移植f.u date.last.seen死亡# # 01005假真BMT / CR < NA > # # 03002真的假REL 10/15/1999 # # 04006真的假REL 1/23/1998 # #04007 TRUE FALSE REL 11/4/1997 ## 08001 TRUE FALSE REL 7/11/1997 ## 08011 FALSE TRUE BMT / DEATH IN CR 

从下面看,数据集中有17名40岁以上的女性。然而,有些人做到了NA年龄和/或性别,还有这些NA值通过一些计算传播。使用表()总结40岁以上女性的数量,以及无法确定该分类的样本数量。当R遇到一个NA值,则会引入NA进入结果。观察这(行NA引入到结果中的值)而不是使用子集()函数。

idx <- pdata$sex == "F" & pdata$age > 40 table(idx, useNA="ifany")
## idx ## FALSE TRUE  ## 108 17 3
dim(pdata[idx,]) #警告:'NA'行已引入
## [1] 20 21
尾(pdata [idx])
## cod诊断性别年龄BT缓解CR日期cr ## 49006 49006 8/12/1998 F 43 B2 cr cr 11/19/1998 ## 57001 57001 1/29/1997 F 53 B3  DEATH IN INDUCTION  ## 62001 62001 11/11/1997 F 50 B4 REF REF  ## NA.1    NA     ## 02020 2020 3/23/2000 F 48 T2  DEATH IN INDUCTION  ## NA.2    NA     ## t.4.11。t.9.22。阶段。正常的摩尔生物融合。蛋白mdr ## 49006 NA NA NA NA  BCR/ABL p210 NEG ## 57001假假真正常NEG  NEG ## 62001假假假t(9;22)+其他BCR/ABL  NEG ## NA.1 NA NA NA NA     ## 02020假假假复杂alt. NEG  NEG ## NA.2 NA NA NA NA NA NA     kinet ccr复发移植f.u日期。last_seen ## 49006 dyploid假真假REL 4/26/1999 ## 57001 hyperd。NA NA NA   ## 62001 hyperd。NA NA NA NA   ## NA.1  NA NA NA NA NA NA   ## 02020 dyploid NA NA NA NA NA NA   ## NA.2  NA NA NA NA  
dim(子集(pdata, idx)) # BETTER:没有NA行
## [1] 17 21
dim(子集(pdata,(性别== "F") &(年龄> 40))))#选择
## [1] 17 21
尾(子集(pdata, idx))
## cod诊断性别年龄BT缓解CR日期cr ## 28032 28032 1998年9月26日F 52 B1 cr cr 1998年10月30日## 30001 30001 /16/1997年F 54 B3 死亡诱导 ## 49006 49006 1998年8月12日F 43 B2 cr cr 1998年11月19日## 57001 57001 1997年1月29日F 53 B3 死亡诱导 ## 02020 2020年3月23日F 48 T2 死亡诱导 ## t.4.11。t.9.22。阶段。正常的摩尔生物融合。蛋白mdr ## 28032 TRUE FALSE FALSE t(4;11) ALL1/AF4  NEG ## 30001 FALSE TRUE FALSE t(9;22)+其他BCR/ABL p190 NEG ## 49006 NA NA NA NA NA  BCR/ABL p210 NEG ## 57001 FALSE FALSE TRUE正常NEG  NEG ## 62001 FALSE TRUE FALSE t(9;22)+其他BCR/ABL  NEG ## 02020假假假复杂alt. NEG  NEG ## ccr复发移植f.u ate. last_seen ## 28032 dyploid TRUE FALSE FALSE ccr 5/16/2002 ## 30001超d。NA NA NA NA   ## 49006 dyploid FALSE TRUE FALSE REL 4/26/1999 ## 57001 hyperd。NA NA NA   ## 62001 hyperd。NA NA NA NA   ## 02020 dyploid NA NA NA NA  
## robust '[':排除NA值dim(pdata[idx & !is.na(idx),])
## [1] 17 21

使用mol.biol列,以将数据子集化,只包含“BCR/ABL”或“NEG”的个体,例如:

bcrabl <-子集(pdata, mol.biol %in% c("BCR/ABL", "NEG"))

mol.biol列是一个因子,即使在子集设置之后,它仍然保留所有级别。保留因子级别有时很方便,但在我们的例子中,我们使用droplevels ()删除未使用的级别

bcrabl美元摩尔。Biol <- droplevels(bcrabl$mol.biol)

英国电信列是描述B细胞和t细胞亚型的因子

水平(bcrabl BT美元)
# #[1]“B”“B1”“B2”“B3”“B4”“T”“T1”“T2”“T3”“T4”

如何将B1 B2…分解为单一类型B, T1 T2…也是如此,所以只有两种子类型B和T?一种策略是替换两个字母的水平(例如,B1)与单字母级别(例如,B).使用substring ()要选择级别的首字母,并使用新值更新以前的级别水平< -

表(bcrabl BT美元)
## ## b b1 b2 b3 b4 t t1 t2 t3 t4 ## 4 9 35 22 9 5 1 15 9 2
level (bcrabl$BT) <- substring(level (bcrabl$BT), 1,1) table(bcrabl$BT)
## ## b t ## 79 32

使用总()计数BCR/ABL组和NEG组中B-和t细胞类型的样本数

聚合(rownames(bcrabl) ~ BT + mol.biol, bcrabl, length)
## BT mol.biol行名(bcrabl) ## 1 B BCR/ABL 37 ## 2 B NEG 42 ## 3 T NEG 32

使用总()计算BCR/ABL和NEG治疗组男性和女性的平均年龄。

聚合(年龄~ mol.biol +性别,字母,平均值)
##摩尔生物学性别年龄## 1 BCR/ABL F 39.93750 ## 2阴性F 30.42105 ## 3 BCR/ABL M 40.50000 ## 4阴性M 27.21154

使用t.test ()比较BCR/ABL组与NEG组个体的年龄;使用以下方法将结果可视化箱线图().在这两种情况下,都使用公式接口。咨询帮助页t.test ?并重新做测试,假设两组的年龄方差相同。测试输出的哪些部分会发生变化?

T.test(年龄~ mol.biol, bcrabl)
## ## Welch Two样本t-检验## ##数据:年龄由摩尔。biol ## t = 4.8172, df = 68.529, p-value = 8.401e-06 ##替代假设:均值的真实差异不等于0 ## 95%置信区间:## 7.13507 17.22408 ##样本估计:## BCR组均值/ ## ABL组均值NEG ## 40.25000 28.07042
箱线图(年龄~ mol.biol, bcrabl)