如何分离向量中的整数和双精度数?

Mic*_*ebo 3 r data.table

fread我从包中读取了数据框的一列data.table。向量中大约一半的数字具有双精度,而另一半仅具有整数精度。

head(data$value)
#[1] 3 1.2 3.1 1 1.0 5
Run Code Online (Sandbox Code Playgroud)

我想按精度将向量分成两个,但是当我使用该typeof函数时,所有值都以双精度形式返回,因此我无法使用它来区分两者。

输出将产生两个独立的向量,例如:

single <- c(3,1,5)
double <- c(1.2,3.1,1.0)
Run Code Online (Sandbox Code Playgroud)

Sot*_*tos 5

假设你的向量是x,你可以分割四舍五入时与原始值相同的值,即

x <- c(3, 1.2, 3.1, 1, 1.0, 5)

split(x, round(x) == x)

$`FALSE`
[1] 1.2 3.1

$`TRUE`
[1] 3 1 1 5
Run Code Online (Sandbox Code Playgroud)

  • 我认为这里的1.0不应该被视为1。在这种情况下它们是不同的。 (2认同)