r - 子集数据/根据前7个字母提取数据

标签 r subset names

我有一个庞大的数据集,其中包含来自不同人群的基因型信息。我想按人口对数据进行排序,但我不知道如何。

我想按“pedigree_dhl”排序。我正在使用以下代码,但我不断收到错误消息。

newdata <- project[pedigree_dhl == CCB133$*1,  ]

我的问题也是,“谱系-dhl”包含各个基因型的所有名称。只有 'pedigree-dhl' 列中的前 7 个字母是种群名称。在这个例子中:CCB133。我如何告诉 R,我想提取包含 CCB133 的所有列的数据?
  Allele1 Allele2      SNP_name gs_entry pedigree_dhl
1       T       T ZM011407_0151      656    CCB133$*1
2       T       T ZM009374_0354      656    CCB133$*1
3       C       C ZM003499_0591      656    CCB133$*1
4       A       A ZM003898_0594      656    CCB133$*1
5       C       C ZM004887_0313      656    CCB133$*1
6       G       G ZM000583_1096      656    CCB133$*1

最佳答案

您可能需要考虑 grep正如在 Using regexp to select rows in R dataframe 上的回答一样.适应您的数据:

df <- read.table(text="  Allele1 Allele2      SNP_name gs_entry pedigree_dhl
1       T       T ZM011407_0151      656    CCB133$*1
2       T       T ZM009374_0354      656    CCB133$*1
3       C       C ZM003499_0591      656    CCB133$*1
4       A       A ZM003898_0594      656    CCB133$*1
5       C       C ZM004887_0313      656    CCB133$*1
6       G       G ZM000583_1096      656    CCB133$*1", header=T)

# put into df1 all rows where pedigree_dhl starts with CCB133$
p1 <- 'CCB133$'
df1 <- subset(df, grepl(p1, pedigree_dhl) )

但是您的问题意味着您可能想要选择七个字母的名称,或者只是按系谱名称对行进行排序,并且将所有行放在一个排序的数据框中可能更容易。所有这三个操作:子设置、提取新列或排序,都可以独立执行。
# If you want to create a new column based
# on the first seven letter of SNP_name (or any other variable)

df$SNP_7 <- substr(df$SNP_name, start=1, stop=7)

# If you want to order by pedigree_dhl
# then you don't need to select out the rows into a new dataframe

df <- df[ with(df, order(df$pedigree_dhl)), ]

所有这些都可能是显而易见的——我添加它们只是为了完整性。

关于r - 子集数据/根据前7个字母提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10319369/

相关文章:

r - 从 GRanges 文件中的基因 ID 的 R 对象中提取子集

r - R 中 data.frames 列表的子集

r - r中数据框的名称

python - 为什么 "mutable default argument fix"语法这么难看,python 新手问

r - 从 lsmeans 制作矩阵对比 return

java - 调用者不返回变量

types - Coq 程序配对

r - 名字和colnames有什么区别

r - 计算包含缺失值的相关系数

r - 为因子的每个水平附加一行总和