R语言数据框的常用操作

以下给出数据框常用的基本操作,尽量全面的给出一个完整的数据操作:


目录

  • 数据框概览
  • 更改增加数据框列名
  • 数据框变量(variables)的筛选
    • 索引筛选的几种格式
    • 条件筛选的方式
  • 数据框观测(observations)的筛选
  • 数据框的合并
    • 数据框列的合并
    • 数据框行的合并
  • 数据框的其他常用操作
    • 排序

数据框概览


head(gwas)

rsid AC ytx beta se tstat pval
rs114900175 2766.25 0.054902 -2.78921e-04 3.33375e-04 -0.836659 0.402785
rs143628150 4441.94 1.486270 5.39626e-05 2.60148e-04 0.207431 0.835674
rs115986297 365993.00 112.431000 4.21113e-05 4.15652e-05 1.013140 0.310995
rs148061526 158213.00 41.003900 -3.75454e-05 4.87798e-05 -0.769691 0.441484
rs187222323 1913.18 0.000000 -3.28565e-04 4.10527e-04 -0.800348 0.423510
rs610570 304137.00 80.078400 -4.39023e-05 4.16094e-05 -1.055110 0.291378

str(gwas)

‘data.frame’: 9999 obs. of 7 variables:
$ rsid : Factor w/ 9990 levels “11:38214379_T_C”,..: 743 2728 1038 3234 4393 6971 8601 5960 1441 6826 …
$ AC : num 2766 4442 365993 158213 1913 …
$ ytx : num 0.0549 1.4863 112.431 41.0039 0 …
$ beta : num -2.79e-04 5.40e-05 4.21e-05 -3.75e-05 -3.29e-04 …
$ se : num 3.33e-04 2.60e-04 4.16e-05 4.88e-05 4.11e-04 …
$ tstat: num -0.837 0.207 1.013 -0.77 -0.8 …
$ pval : num 0.403 0.836 0.311 0.441 0.424 …


更改增加数据框列名:

1.1 使用reshape包(package):

library(reshape)
gwas <- rename(gwas, c(rsid='rs', beta='B', pval='P'))

1.2 使用names()函数:

gwas8 <- gwas[1:10,2:4]
names(gwas8)<-c('rs','N','AC')

1.3 或者:

fix(gwas)

*此方法适合手动更改

2.1 增加一列,使用data.frame()函数

P_1 <- gwas$P
gwas7 <- data.frame(gwas, P_1)

2.2 使用transform()函数:

gwas8 <- transform(gwas, total=gwas$AC+gwas$ytx)

数据框变量的筛选

索引筛选的几种格式

可通过 正整数,负整数,逻辑值,变量名称 来进行索引筛选:

#example
gwas1 <- gwas[1:9998, 1:3]
gwas2 <- gwas[-9999, 1:3]
gwas3 <- gwas[-9999, c('rs', 'AC', 'ytx')]
gwas4 <- gwas[1:9998, c(T,T,T,F,F,F,F)]
gwas_t <- gwas[1:3];gwas5 <- gwas_t[1:9998,]
myvars <- names(gwas) %in% c('B','se','tstat','P');gwas6 <- gwas[1:9998,!myvars]

几种方式筛选出的gwas1,gwas2,gwas3,gwas4,gwas5,gwas6数据框都是一个数据框。

扫描二维码关注公众号,回复: 3029294 查看本文章

筛选观测(observation)的方式

#数字索引筛选
gwas_subset1 <- gwas[1:300,]
#使用which()函数和条件表达式
gwas_subset2 <- gwas[which(gwas$nCompleteSamples > 300000 & gwas$P<0.05),]
#使用subset()函数
gwas_subset3 <- subset(gwas, gwas$nCompleteSamples > 300000 & gwas$P<0.05, select = rs:P)

*推荐使用最简便的subset()函数,这个函数可以同时选择合适的观测和变量,非常方便。


数据框的合并

数据框列的合并

1.使用merge()函数:

df1 <- data.frame(rs=gwas$rs, note=c(0))
gwas9 <- merge(gwas, df1, by='rs')

2.使用cbind()函数:

df1 <- data.frame(rs=gwas$rs, note=c(0))
gwas10 <- cbind(gwas,df1)

数据框行的合并

使用rbind()函数:

df1 <- gwas[1:4999,]
df2 <- gwas[5000:9999,]
gwas10 <- rbind(df1,df2)

数据框的其他常用操作

排序

1.使用order()函数:

gwas11 <- gwas[order(gwas$P,gwas$tstat),]
gwas12 <- gwas[order(-gwas$P,-gwas$tstat,decreasing = T),]

gwas11和gwas12排序相同。
*使用 sort() rank()函数也是排序相关函数,适用不同场景。

猜你喜欢

转载自blog.csdn.net/u013512975/article/details/82320395
今日推荐