删除没有小数位的双打

时间:2018-03-26 11:27:41

标签: r regex grep data-manipulation

我有一个矢量:

x <- c(0.0, 0.5, 1.000, 1.5, 1.6, 1.7, 1.75, 2.0, 2.4, 2.5, 3.0, 74.0)

如何仅提取小数位后包含非零值的x值?例如,结果向量将如下所示:

c(0.5, 1.5, 1.6, 1.7, 1.75, 2.4, 2.5)

已删除0.01.0002.03.074.0

2 个答案:

答案 0 :(得分:9)

或者

x[x %% 1 != 0]
#[1] 0.50 1.50 1.60 1.70 1.75 2.40 2.50

x[trunc(x) != x]
#[1] 0.50 1.50 1.60 1.70 1.75 2.40 2.50

x[as.integer(x) != x]
#[1] 0.50 1.50 1.60 1.70 1.75 2.40 2.50

或(现在我停止!)

x[grepl("\\.[^0]+$",x)]
#[1] 0.50 1.50 1.60 1.70 1.75 2.40 2.50

:d

答案 1 :(得分:8)

我们可以使用round

构建逻辑索引
x[round(x) != x]
#[1] 0.50 1.50 1.60 1.70 1.75 2.40 2.50