Nothing
dates <- c("2017-01-01", "2017-01-02", "2017-01-03", "2017-01-04")
d1 <- data.frame(x = seq_along(dates), row.names = dates)
d2 <- data.frame(d1, y = rev(seq_along(dates)))
### basic functionality on data.frame
info_msg <- "test.first_xtsible_data.frame_pos_n"
expect_identical(first(d1, 1), head(d1, 1), info = info_msg)
expect_identical(first(d2, 1), head(d2, 1), info = info_msg)
expect_identical(first(d1, "1 day"), head(d1, 1), info = info_msg)
expect_identical(first(d2, "1 day"), head(d2, 1), info = info_msg)
info_msg <- "test.first_xtsible_data.frame_neg_n"
expect_identical(first(d1, -1), tail(d1, -1), info = info_msg)
expect_identical(first(d2, -1), tail(d2, -1), info = info_msg)
expect_identical(first(d1, "-1 day"), tail(d1, -1), info = info_msg)
expect_identical(first(d2, "-1 day"), tail(d2, -1), info = info_msg)
info_msg <- "test.first_xtsible_data.frame_zero_n"
expect_identical(first(d1, 0), head(d1, 0), info = info_msg)
expect_identical(first(d2, 0), head(d2, 0), info = info_msg)
expect_identical(first(d1, "0 day"), head(d1, 0), info = info_msg)
expect_identical(first(d2, "0 day"), head(d2, 0), info = info_msg)
info_msg <- "test.last_xtsible_data.frame_pos_n"
expect_identical(last(d1, 1), tail(d1, 1), info = info_msg)
expect_identical(last(d2, 1), tail(d2, 1), info = info_msg)
expect_identical(last(d1, "1 day"), tail(d1, 1), info = info_msg)
expect_identical(last(d2, "1 day"), tail(d2, 1), info = info_msg)
info_msg <- "test.last_xtsible_data.frame_neg_n"
expect_identical(last(d1, -1), head(d1, -1), info = info_msg)
expect_identical(last(d2, -1), head(d2, -1), info = info_msg)
expect_identical(last(d1, "-1 day"), head(d1, -1), info = info_msg)
expect_identical(last(d2, "-1 day"), head(d2, -1), info = info_msg)
info_msg <- "test.last_xtsible_data.frame_zero_n"
expect_identical(last(d1, 0), head(d1, 0), info = info_msg)
expect_identical(last(d2, 0), head(d2, 0), info = info_msg)
expect_identical(last(d1, "0 day"), head(d1, 0), info = info_msg)
expect_identical(last(d2, "0 day"), head(d2, 0), info = info_msg)
### non-xtsible data.frames
d1 <- data.frame(x = seq_along(dates), row.names = dates)
d2 <- data.frame(d1, y = rev(seq_along(dates)))
rownames(d1) <- rownames(d2) <- NULL
info_msg <- "test.first_nonxtsible_data.frame_pos_n"
expect_identical(first(d1, 1), head(d1, 1), info = info_msg)
expect_identical(first(d2, 1), head(d2, 1), info = info_msg)
info_msg <- "test.first_nonxtsible_data.frame_neg_n"
rownames(d1) <- rownames(d2) <- NULL
expect_identical(first(d1, -1), tail(d1, -1), info = info_msg)
expect_identical(first(d2, -1), tail(d2, -1), info = info_msg)
info_msg <- "test.first_nonxtsible_data.frame_zero_n"
rownames(d1) <- rownames(d2) <- NULL
expect_identical(first(d1, 0), tail(d1, 0), info = info_msg)
expect_identical(first(d2, 0), tail(d2, 0), info = info_msg)
info_msg <- "test.last_nonxtsible_data.frame_pos_n"
rownames(d1) <- rownames(d2) <- NULL
expect_identical(last(d1, 1), tail(d1, 1), info = info_msg)
expect_identical(last(d2, 1), tail(d2, 1), info = info_msg)
info_msg <- "test.last_nonxtsible_data.frame_neg_n"
rownames(d1) <- rownames(d2) <- NULL
expect_identical(last(d1, -1), head(d1, -1), info = info_msg)
expect_identical(last(d2, -1), head(d2, -1), info = info_msg)
info_msg <- "test.last_nonxtsible_data.frame_zero_n"
rownames(d1) <- rownames(d2) <- NULL
expect_identical(last(d1, 0), head(d1, 0), info = info_msg)
expect_identical(last(d2, 0), head(d2, 0), info = info_msg)
### basic functionality on matrix
d1 <- data.frame(x = seq_along(dates), row.names = dates)
d2 <- data.frame(d1, y = rev(seq_along(dates)))
m1 <- as.matrix(d1)
m2 <- as.matrix(d2)
info_msg <- "test.first_xtsible_matrix_pos_n"
expect_identical(first(m1, 1), head(m1, 1), info = info_msg)
expect_identical(first(m2, 1), head(m2, 1), info = info_msg)
expect_identical(first(m1, "1 day"), head(m1, 1), info = info_msg)
expect_identical(first(m2, "1 day"), head(m2, 1), info = info_msg)
info_msg <- "test.first_xtsible_matrix_neg_n"
expect_identical(first(m1, -1), tail(m1, -1, keepnums = FALSE), info = info_msg)
expect_identical(first(m2, -1), tail(m2, -1, keepnums = FALSE), info = info_msg)
expect_identical(first(m1, "-1 day"), tail(m1, -1, keepnums = FALSE), info = info_msg)
expect_identical(first(m2, "-1 day"), tail(m2, -1, keepnums = FALSE), info = info_msg)
info_msg <- "test.first_xtsible_matrix_zero_n"
expect_identical(first(m1, 0), tail(m1, 0, keepnums = FALSE), info = info_msg)
expect_identical(first(m2, 0), tail(m2, 0, keepnums = FALSE), info = info_msg)
expect_identical(first(m1, "0 day"), tail(m1, 0, keepnums = FALSE), info = info_msg)
expect_identical(first(m2, "0 day"), tail(m2, 0, keepnums = FALSE), info = info_msg)
info_msg <- "test.last_xtsible_matrix_pos_n"
expect_identical(last(m1, 1), tail(m1, 1, keepnums = FALSE), info = info_msg)
expect_identical(last(m2, 1), tail(m2, 1, keepnums = FALSE), info = info_msg)
expect_identical(last(m1, "1 day"), tail(m1, 1, keepnums = FALSE), info = info_msg)
expect_identical(last(m2, "1 day"), tail(m2, 1, keepnums = FALSE), info = info_msg)
info_msg <- "test.last_xtsible_matrix_neg_n"
expect_identical(last(m1, -1), head(m1, -1), info = info_msg)
expect_identical(last(m2, -1), head(m2, -1), info = info_msg)
info_msg <- "test.last_xtsible_matrix_zero_n"
expect_identical(last(m1, 0), head(m1, 0), info = info_msg)
expect_identical(last(m2, 0), head(m2, 0), info = info_msg)
info_msg <- "test.first_nonxtsible_matrix_pos_n"
rownames(m1) <- rownames(m2) <- NULL
expect_identical(first(m1, 1), head(m1, 1), info = info_msg)
expect_identical(first(m2, 1), head(m2, 1), info = info_msg)
info_msg <- "test.first_nonxtsible_matrix_neg_n"
rownames(m1) <- rownames(m2) <- NULL
expect_identical(first(m1, -1), tail(m1, -1, keepnums = FALSE), info = info_msg)
expect_identical(first(m2, -1), tail(m2, -1, keepnums = FALSE), info = info_msg)
info_msg <- "test.first_nonxtsible_matrix_zero_n"
rownames(m1) <- rownames(m2) <- NULL
expect_identical(first(m1, 0), tail(m1, 0, keepnums = FALSE), info = info_msg)
expect_identical(first(m2, 0), tail(m2, 0, keepnums = FALSE), info = info_msg)
info_msg <- "test.last_nonxtsible_matrix_pos_n"
rownames(m1) <- rownames(m2) <- NULL
expect_identical(last(m1, 1), tail(m1, 1, keepnums = FALSE), info = info_msg)
expect_identical(last(m2, 1), tail(m2, 1, keepnums = FALSE), info = info_msg)
info_msg <- "test.last_nonxtsible_matrix_neg_n"
rownames(m1) <- rownames(m2) <- NULL
expect_identical(last(m1, -1), head(m1, -1), info = info_msg)
expect_identical(last(m2, -1), head(m2, -1), info = info_msg)
info_msg <- "test.last_nonxtsible_matrix_zero_n"
rownames(m1) <- rownames(m2) <- NULL
expect_identical(last(m1, 0), head(m1, 0), info = info_msg)
expect_identical(last(m2, 0), head(m2, 0), info = info_msg)
### basic functionality on vector
d1 <- data.frame(x = seq_along(dates), row.names = dates)
d2 <- data.frame(d1, y = rev(seq_along(dates)))
info_msg <- "test.first_xtsible_vector"
v1 <- setNames(d1$x, rownames(d1))
expect_identical(first(v1, 1), head(v1, 1), info = info_msg)
expect_identical(first(v1,-1), tail(v1,-1), info = info_msg)
expect_identical(first(v1, "1 day"), head(v1, 1), info = info_msg)
expect_identical(first(v1,"-1 day"), tail(v1,-1), info = info_msg)
expect_identical(first(v1, "2 days"), head(v1, 2), info = info_msg)
expect_identical(first(v1,"-2 days"), tail(v1,-2), info = info_msg)
d <- .Date(3) + 1:21
expect_identical(first(d, "1 week"), head(d, 7), info = info_msg)
expect_identical(first(d,"-1 week"), tail(d,-7), info = info_msg)
expect_identical(first(d, "2 weeks"), head(d, 14), info = info_msg)
expect_identical(first(d,"-2 weeks"), tail(d,-14), info = info_msg)
info_msg <- "test.last_xtsible_vector"
v1 <- setNames(d1$x, rownames(d1))
expect_identical(last(v1, 1), tail(v1, 1), info = info_msg)
expect_identical(last(v1,-1), head(v1,-1), info = info_msg)
expect_identical(last(v1, "1 day"), tail(v1, 1), info = info_msg)
expect_identical(last(v1,"-1 day"), head(v1,-1), info = info_msg)
d <- .Date(3) + 1:21
expect_identical(last(d, "1 week"), tail(d, 7), info = info_msg)
expect_identical(last(d,"-1 week"), head(d,-7), info = info_msg)
expect_identical(last(d, "2 weeks"), tail(d, 14), info = info_msg)
expect_identical(last(d,"-2 weeks"), head(d,-14), info = info_msg)
info_msg <- "test.first_nonxtsible_vector"
v1 <- d1$x
expect_identical(first(v1, 1), head(v1, 1), info = info_msg)
expect_identical(first(v1,-1), tail(v1,-1), info = info_msg)
expect_identical(first(v1,0), tail(v1,0), info = info_msg)
info_msg <- "test.last_nonxtsible_vector"
v1 <- d1$x
expect_identical(last(v1, 1), tail(v1, 1), info = info_msg)
expect_identical(last(v1,-1), head(v1,-1), info = info_msg)
expect_identical(last(v1,0), head(v1,0), info = info_msg)
### zero-length vectors
info_msg <- "test.zero_length_vector"
types <- c("logical", "integer", "numeric", "complex", "character", "raw")
for (type in types) {
v <- vector(type, 0)
expect_identical(first(v, 1), v, info = paste(info_msg, type, "- first, n = 1"))
expect_identical( last(v, 1), v, info = paste(info_msg, type, "- last, n = 1"))
# negative 'n'
expect_identical(first(v, -1), v, info = paste(info_msg, type, "- first, n = -1"))
expect_identical( last(v, -1), v, info = paste(info_msg, type, "- last, n = -1"))
#zero 'n'
expect_identical(first(v, 0), v, info = paste(info_msg, type, "- first, n = 0"))
expect_identical( last(v, 0), v, info = paste(info_msg, type, "- last, n = 0"))
}
### zero-row matrix
info_msg <- "test.zero_row_matrix"
types <- c("logical", "integer", "numeric", "complex", "character", "raw")
for (type in types) {
m <- matrix(vector(type, 0), 0)
expect_identical(first(m, 1), m, info = paste(info_msg, type, "- first, n = 1"))
expect_identical( last(m, 1), m, info = paste(info_msg, type, "- last, n = 1"))
# negative 'n'
expect_identical(first(m, -1), m, info = paste(info_msg, type, "- first, n = -1"))
expect_identical( last(m, -1), m, info = paste(info_msg, type, "- last, n = -1"))
#zero 'n'
expect_identical(first(m, 0), m, info = paste(info_msg, type, "- first, n = 0"))
expect_identical( last(m, 0), m, info = paste(info_msg, type, "- last, n = 0"))
}
### tests for zoo
z1 <- zoo(seq_along(dates), as.Date(dates))
z2 <- merge(x = z1, y = rev(seq_along(dates)))
info_msg <- "test.first_zoo_pos_n"
expect_identical(first(z1, 1), head(z1, 1), info = info_msg)
expect_identical(first(z2, 1), head(z2, 1), info = info_msg)
expect_identical(first(z1, "1 day"), head(z1, 1), info = info_msg)
expect_identical(first(z2, "1 day"), head(z2, 1), info = info_msg)
info_msg <- "test.first_zoo_neg_n"
expect_identical(first(z1, -1), tail(z1, -1), info = info_msg)
expect_identical(first(z2, -1), tail(z2, -1), info = info_msg)
expect_identical(first(z1, "-1 day"), tail(z1, -1), info = info_msg)
expect_identical(first(z2, "-1 day"), tail(z2, -1), info = info_msg)
info_msg <- "test.last_zoo_pos_n"
expect_identical(last(z1, 1), tail(z1, 1), info = info_msg)
expect_identical(last(z2, 1), tail(z2, 1), info = info_msg)
expect_identical(last(z1, "1 day"), tail(z1, 1), info = info_msg)
expect_identical(last(z2, "1 day"), tail(z2, 1), info = info_msg)
info_msg <- "test.last_zoo_neg_n"
expect_identical(last(z1, -1), head(z1, -1), info = info_msg)
expect_identical(last(z2, -1), head(z2, -1), info = info_msg)
expect_identical(last(z1, "-1 day"), head(z1, -1), info = info_msg)
expect_identical(last(z2, "-1 day"), head(z2, -1), info = info_msg)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.