Как преобразовать NUM в INT в R?

Я пытаюсь преобразовать числовой формат в целое число в R. Это необходимо для части проекта, где я использую java-код для запуска некоторых симуляций (который читает эти конкретные данные как int).

Я попробовал как round(x$var, 0), так и trunc(x$var). Оба они работают успешно, но когда я str(x), x$var все еще num. x - это кадр данных.

Ответы

Ответ 1

Используйте 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

Тест для класса:

xx <- as.integer(x)
str(xx)
 int [1:5] 26 37 57 90 20

Ответ 2

Вы можете использовать convert из hablar для быстрого изменения столбца кадра данных.

library(tidyverse)
library(hablar)

x <- tibble(var = c(1.34, 4.45, 6.98))

x %>% 
  convert(int(var))

дает тебе:

# A tibble: 3 x 1
    var
  <int>
1     1
2     4
3     6