删除列中的部分值

时间:2017-03-23 07:51:40

标签: r replace

我有一个包含以下两列的数据框:

typedef struct Node Node;
struct Node {
    int data;
    Node *nextptr;
};


typedef int *intptr;   // type name: intptr
                       // new type: int*

intptr ptr;            // same as: int *ptr

现在我需要删除。在RSID-和ALLELE-列中的每个值之后。

我尝试了这个选项:

RSID rs12345. rs3984. rs12398432. rs79372.  etc   
ALLELE A. C. T. G. etc

但不幸的是它没有用。你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

由于我们要删除最后一个点(.),我们可以使用subsubstring。遍历感兴趣的列,与字符串末尾的.匹配,并将其替换为空格($

""

或者df[c("RSID", "ALLELE")] <- lapply(df[c("RSID", "ALLELE")], function(x) sub("\\.$", "", x)) df # RSID ALLELE #1 rs12345 A #2 rs3984 B #3 rs12398432 C #4 rs79372 D 更快的选项是保留除最后一个之外的所有字符。

substr

数据

df[c("RSID", "ALLELE")] <- lapply(df[c("RSID", "ALLELE")], 
                       function(x) substr(x, 1, nchar(x)-1))