我有一个包含以下两列的数据框:
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
但不幸的是它没有用。你有什么建议吗?
答案 0 :(得分:2)
由于我们要删除最后一个点(.
),我们可以使用sub
或substring
。遍历感兴趣的列,与字符串末尾的.
匹配,并将其替换为空格($
)
""
或者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))