Я очень смущен концепциями структуры данных в R (это гораздо проще понять в SAS).В чем разница между 1: 5 и c (1,2,3,4,5)?
Есть ли разница между x <- 1:5
и x <- c(1,2,3,4,5)
? Из окна среды я знаю, что один int
, а другой num
.
Я очень смущен концепциями структуры данных в R (это гораздо проще понять в SAS).В чем разница между 1: 5 и c (1,2,3,4,5)?
Есть ли разница между x <- 1:5
и x <- c(1,2,3,4,5)
? Из окна среды я знаю, что один int
, а другой num
.
x
и y
ниже не совсем идентичны, поскольку они имеют разные режимы хранения, как вы обнаружили, используя str(x)
и str(y)
. По моему опыту, это различие не важно в 99% случаев; R использует довольно свободную типизацию, и при необходимости целые числа будут автоматически повышаться до двойной (то есть с плавающей запятой с двойной точностью). Целые числа и значения с плавающей запятой ниже максимального целочисленного значения (.Machine$integer.max
) могут быть преобразованы взад и вперед без потери информации. (Целые действительно занимают немного меньше места для хранения, и может быть немного быстрее вычислить с как @RichardScriven комментарии выше.)
Если вы хотите создать целочисленный вектор, добавьте L
, как показано ниже ... или использовать as.integer()
как предложено в комментариях выше.
x <- 1:5
y <- c(1,2,3,4,5)
z <- c(1L,2L,3L,4L,5L)
all.equal(x,y) ## test for _practical_ equivalence: TRUE
identical(x,y) ## FALSE
identical(x,z) ## TRUE
storage.mode()
и class()
могут также быть полезными, а также is.integer()
, is.double()
, as.integer()
, as.double()
, is.numeric()
...
':' является функцией для создания целочисленных последовательностей. Оба вектора являются числовыми, но последний является числовым двойным. Двойное числовое, целое целое, а также числовое. Целые операции обычно делают операции быстрее. –
Если вы хотите, чтобы вторая опция была целочисленной, а не числовой, вы могли бы сделать «x <- c (1L, 2L, 3L, 4L, 5L)» или 'x <- as.integer (c (1, 2, 3, 4, 5)). – cocquemas
Я считаю, что sas имеет одну структуру данных, поэтому я думаю, что было бы проще – rawr