识别变量中的数字行,这些行主要由非数字行组成

时间:2016-03-17 18:19:52

标签: r subset numeric

我有一个数据框df,其变量Var.1主要由字符串变量组成,如下所示

 Var.1
 RA305
 RA430
 RA773
 RA7CQ
 RA90J
 ..... 

然而,该变量还可能包含由唯一数字组成的因子(例如,所有字符都是数字)。我想通过对后面的观察进行子集来创建一个新的数据框,我想知道如何识别它们。我的尝试是

new_df = filter(df, !grepl("[:digit:]", Var.1))

但我仍然无法获得只有数字的观察结果。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我们可以使用^$来指定grepl中字符串的开头和结尾。由于我们仅filter仅数字行,因此它应仅包含数字

filter(df, grepl("^[0-9]+$", Var.1))

在OP的方法中,[[:digit:]]+缺少外部[]。此外,它是非特定的,因为它可以选择可以是所有数字,带有字符的数字等的元素。因此,通过否定它,我们可以获得具有非数字元素的元素(恰好与我们的目标相反 - 假设数据集中存在这些情况)