如何在R中的一列整数中查找和替换十进制数?

如何在R中的一列整数中查找和替换十进制数?,r,replace,R,Replace,我正在处理一个来自机器的数据集。 在一列中,所有值都是不带小数的整数,但有时机器会记录一些带小数的数字。 在本列中,所有数字的顺序是从1到9,然后再从1到9,但重复次数不同。例如,可能有五个1或三个2 1 1 1 2 3 4 5 8.6 6 7 7 7 7 8 9 9 4.2 1 1 1 2 3 如何在整数中找到这些带小数的数字,并用其他未舍入的值替换它们,或从数据集中删除这些数字? 提前感谢只需使用ifelse功能 您说过您不想只对值进行四舍五入,但是如果这是一个选项,那么简单的d只需使用i

我正在处理一个来自机器的数据集。 在一列中,所有值都是不带小数的整数,但有时机器会记录一些带小数的数字。 在本列中,所有数字的顺序是从1到9,然后再从1到9,但重复次数不同。例如,可能有五个1或三个2

1
1
1
2
3
4
5
8.6
6
7
7
7
7
8
9
9
4.2
1
1
1
2
3
如何在整数中找到这些带小数的数字,并用其他未舍入的值替换它们,或从数据集中删除这些数字? 提前感谢

只需使用ifelse功能

您说过您不想只对值进行四舍五入,但是如果这是一个选项,那么简单的d只需使用ifelse函数即可


您说过您不想只对值进行四舍五入,但是如果这是一个选项,那么一个简单的d如果您的数据帧称为df,列为V1,您可以通过

df$V1 %% 1 != 0
#[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
#[14] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
如果要替换这些值,请使用NA

如果要删除十进制值,可以执行以下操作:

df <- df[df$V1 %% 1 == 0, , drop = FALSE]

如果数据帧称为df,列为V1,则可以通过

df$V1 %% 1 != 0
#[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
#[14] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
如果要替换这些值,请使用NA

如果要删除十进制值,可以执行以下操作:

df <- df[df$V1 %% 1 == 0, , drop = FALSE]
使用dput重新创建数据集并在此处发布结果。使用dput重新创建数据集并在此处发布结果。
df <- df[df$V1 %% 1 == 0, , drop = FALSE]