Ответ 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
Я пытаюсь преобразовать числовой формат в целое число в R. Это необходимо для части проекта, где я использую java-код для запуска некоторых симуляций (который читает эти конкретные данные как int).
Я попробовал как round(x$var, 0)
, так и trunc(x$var)
. Оба они работают успешно, но когда я str(x)
, x$var
все еще num
. x - это кадр данных.
Используйте 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
Вы можете использовать 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