我有一个数据框df
,其变量Var.1
主要由字符串变量组成,如下所示
Var.1
RA305
RA430
RA773
RA7CQ
RA90J
.....
然而,该变量还可能包含由唯一数字组成的因子(例如,所有字符都是数字)。我想通过对后面的观察进行子集来创建一个新的数据框,我想知道如何识别它们。我的尝试是
new_df = filter(df, !grepl("[:digit:]", Var.1))
但我仍然无法获得只有数字的观察结果。有什么建议吗?
答案 0 :(得分:1)
我们可以使用^
和$
来指定grepl
中字符串的开头和结尾。由于我们仅filter
仅数字行,因此它应仅包含数字
filter(df, grepl("^[0-9]+$", Var.1))
在OP的方法中,[[:digit:]]+
缺少外部[]
。此外,它是非特定的,因为它可以选择可以是所有数字,带有字符的数字等的元素。因此,通过否定它,我们可以获得具有非数字元素的元素(恰好与我们的目标相反 - 假设数据集中存在这些情况)