我试图合并两个数据框,一个具有序列的前30个核苷酸(或字符),每个核苷酸重复一次(每个序列重复30次)。以下是该数据框的子集:
第二个数据框每个完整的ORF序列一次,与相关的Prot。每个细胞的分子对每个序列进行评分。我希望将第一个数据帧中的每个30nt序列(及其所有重复序列)与Prot匹配。每个细胞的分子从第二个数据帧开始计数。这是第二个数据框的子集:
我的一般想法是找到一种方法来替换第二个数据框中的每个序列,只使用该序列中的前30个核苷酸,然后使用merge()函数。但是,我担心我不知道如何切片序列,我也担心R中的merge()函数会删除第一个数据帧中每个30个核苷酸序列的重复。
非常感谢任何帮助!
答案 0 :(得分:0)
# subset string
a = 'CCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGC'
b = 'CTGCAGGAACTTCTTCTGGAAGACCTTCTCCTCCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAG'
df = setNames(data.frame(rbind(a, b)), 'seq')
df$char_30 = substr(df$seq, 1, 30)`
head(df)