用存储在向量中的值替换从特定字符开始的数据帧中的所有行

时间:2019-01-30 14:24:08

标签: r

我有一个数据帧(df),如下所示:

df

    df$column1
>hg19_chr1:55343-67868
ATATGAGCGT
>hg19_chr6:343114-831443
GGGGCCGCGTGCTG
>hg19_chr15:76644-90990
TTTCATCAT

然后我有一个3个字符的向量(vec) “ SRSF4”,“ MAX”,“ BIM”

我想用存储在向量中的名称替换以字符“>”开头的数据帧的所有行:

输出:

df

    df$column1
SRSF4
ATATGAGCGT
MAX
GGGGCCGCGTGCTG
BIM
TTTCATCAT

我写了这样的东西,但似乎不起作用:

data <- data.frame(lapply(df, function(x) {gsub(">.$ ", vec, x)}))

非常感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

我们可以创建一个逻辑向量,然后进行替换

i1 <- grep("^[>]", df$column1)
df$column1[i1] <- paste0(">", vec)

注意:在这里,我们假设'vec'的length和以>作为起始字符的行数是相同的