如何用该列中每个元素的前30个字符替换列的所有元素(在R中)?

时间:2017-12-01 16:51:59

标签: r dataframe merge frame

我试图合并两个数据框,一个具有序列的前30个核苷酸(或字符),每个核苷酸重复一次(每个序列重复30次)。以下是该数据框的子集:

Data Frame 1

第二个数据框每个完整的ORF序列一次,与相关的Prot。每个细胞的分子对每个序列进行评分。我希望将第一个数据帧中的每个30nt序列(及其所有重复序列)与Prot匹配。每个细胞的分子从第二个数据帧开始计数。这是第二个数据框的子集:

Data Frame 2

我的一般想法是找到一种方法来替换第二个数据框中的每个序列,只使用该序列中的前30个核苷酸,然后使用merge()函数。但是,我担心我不知道如何切片序列,我也担心R中的merge()函数会删除第一个数据帧中每个30个核苷酸序列的重复。

非常感谢任何帮助!

1 个答案:

答案 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)