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

Identify numeric rows in variable mostly composed by non-numeric rows

我有一个数据框 df,其中包含一个变量 Var.1,主要由以下字符串变量组成

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

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

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

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

我们可以使用^$来指定grepl中字符串的开始和结束。因为我们只 filter 只包含数字行,所以它应该只包含数字

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

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