I am trying to convert numeric format to an integer in R. This is essential to a part of the project where I am using java code to run some simulations (which reads this particular data as int).
I tried both round(x$var, 0)
and trunc(x$var)
. Both of them run successfully, but when I str(x)
, x$var
is still num
. x is a dataframe.
Use as.integer
:
set.seed(1)
x <- runif(5, 0, 100)
x
[1] 26.55087 37.21239 57.28534 90.82078 20.16819
as.integer(x)
[1] 26 37 57 90 20
Test for class:
xx <- as.integer(x)
str(xx)
int [1:5] 26 37 57 90 20
You can use convert
from hablar
to change a column of the data frame quickly.
library(tidyverse)
library(hablar)
x <- tibble(var = c(1.34, 4.45, 6.98))
x %>%
convert(int(var))
gives you:
# A tibble: 3 x 1
var
<int>
1 1
2 4
3 6