如何对r中的数据进行排序和子集

  • 本文关键字:排序 子集 数据 r
  • 更新时间 :
  • 英文 :


我正试图根据单元格的第一个字母排序一行,我很难在r中编写代码。

<表类> snp allele1 allele2 tbody><<tr>mmsooprs3122CG tdSNP1234TCrs3144

或者

df<- read.table(
text= "
snp allele1 allele2
mmsoop  A   A
rs3122  C   G
SNP1234 T   C
rs3144  A   A",
header=T
)
df[grep("^(SNP|rs)",df$snp),]
snp allele1 allele2
2  rs3122       C       G
3 SNP1234       T       C
4  rs3144       A       A

我们可以在subset中使用grepl,通过从字符串的开始(^)匹配rs或(|)SNP来创建逻辑向量,以子集

subset(df1, grepl("^(rs|SNP)", snp))
snp allele1 allele2
2  rs3122       C       G
3 SNP1234       T       C
4  rs3144       A       A

数据
df1 <- structure(list(snp = c("mmsoop", "rs3122", "SNP1234", "rs3144"
), allele1 = c("A", "C", "T", "A"), allele2 = c("A", "G", "C", 
"A")), class = "data.frame", row.names = c(NA, -4L))

我们可以将filterstr_detect合并:

library(dplyr)
library(stringr)
df %>% 
filter(str_detect(snp, 'rs|SNP'))
snp allele1 allele2
1  rs3122       C       G
2 SNP1234       T       C
3  rs3144       A       A

最新更新