检查数据框列是否包含十进制值

时间:2021-01-30 16:58:20

标签: r

示例数据框

df<- data.frame(column1=c("row1", "row2", "row3", "row4", "row5", "row6"), column2=c(1,3,4.3,5,6.5,7.8))

检查 df$column2 是否包含小数。结果应该是 TRUEFALSE

2 个答案:

答案 0 :(得分:0)

试试这个:

round(df$column2) != df$column2

由于您无法创建一列内部和双精度数,我们错误地假设如果小数部分为 0,则数字为整数。

如果您有兴趣知道该列是否包含至少一位小数,请使用

any(round(df$column2) != df$column2)

如果你有兴趣知道是否所有的列值都是十进制使用

all(round(df$column2) != df$column2)

答案 1 :(得分:0)

使用模数运算符。

x%%1==0 将检查模数 (x mod 1) 是否为 0

x%%1!=0 将检查模数 (x mod 1) 是否不为 0,这意味着它的值有小数

这会给你元素结果:

pydoc re

对于整列的聚合,调用

> df$column2%%1!=0
[1] FALSE FALSE  TRUE FALSE  TRUE  TRUE

相关问题