Skip to content

Commit

Permalink
Merge pull request #44 from hadley/feature/rownames
Browse files Browse the repository at this point in the history
- New `has_rownames()` and `remove_rownames()` (#44).
  • Loading branch information
krlmlr committed Mar 17, 2016
2 parents 772ef37 + 9134ba3 commit ae76318
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 12 deletions.
36 changes: 31 additions & 5 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,46 @@ Version: 0.3-1
Date: 2016-03-17
Title: Simple Data Frames
Description: Provides a 'tbl_df' class that offers better checking and
printing capabilities than traditional data frames.
printing capabilities than traditional data frames.
Authors@R: c( person("Hadley", "Wickham", , "[email protected]", role
= "aut"), person("Romain", "Francois", ,
"[email protected]", role = "aut"), person("Kirill",
"Müller", , "[email protected]", role = c("aut", "cre")),
person("RStudio", role = "cph") )
URL: https://github.com/krlmlr/tibble
BugReports: https://github.com/krlmlr/tibble/issues
Depends: R (>= 3.1.2)
Imports: methods, assertthat, utils, lazyeval (>= 0.1.10), Rcpp
Suggests: testthat, knitr, rmarkdown, Lahman (>= 3.0.1), magrittr,
microbenchmark
Depends:
R (>= 3.1.2)
Imports:
methods,
assertthat,
utils,
lazyeval (>= 0.1.10),
Rcpp
Suggests:
testthat,
knitr,
rmarkdown,
Lahman (>= 3.0.1),
magrittr,
microbenchmark
LazyData: yes
License: MIT + file LICENSE
RoxygenNote: 5.0.1
LinkingTo: Rcpp
VignetteBuilder: knitr
Collate:
'RcppExports.R'
'all-equal.r'
'rownames.R'
'dataframe.R'
'frame-data.R'
'glimpse.R'
'repair-column-names.R'
'src-local.r'
'src.r'
'tbl-df.r'
'tibble.R'
'type-sum.r'
'utils-format.r'
'utils.r'
2 changes: 2 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@ export(data_frame_)
export(dim_desc)
export(frame_data)
export(glimpse)
export(has_rownames)
export(knit_print.trunc_mat)
export(lst)
export(lst_)
export(remove_rownames)
export(repair_names)
export(rownames_to_column)
export(tbl_df)
Expand Down
4 changes: 1 addition & 3 deletions R/dataframe.R
Original file line number Diff line number Diff line change
Expand Up @@ -201,16 +201,14 @@ as_data_frame.NULL <- function(x, ...) {
as_data_frame(list())
}

#' Conversion between rownames and a column in data frame
#'
#' \code{rownames_to_column} convert row names to an explicit variable.
#'
#' @param df Input data frame with rownames.
#' @param var Name of variable to use
#' @export
#' @rdname rownames
#' @importFrom stats setNames
#' @examples
#'
#' rownames_to_column(mtcars)
#'
#' mtcars_tbl <- rownames_to_column(tbl_df(mtcars))
Expand Down
24 changes: 24 additions & 0 deletions R/rownames.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#' Row names
#'
#' \code{has_rownames} checks if a data frame has row names.
#' @param df Input data frame
#' @export
#' @rdname rownames
#' @examples
#' has_rownames(mtcars)
#' has_rownames(iris)
has_rownames <- function(df) {
stopifnot(is.data.frame(df))
.row_names_info(df) > 0L
}

#' \code{remove_rownames} removes all row names.
#' @export
#' @rdname rownames
#' @examples
#' rownames(remove_rownames(mtcars))
remove_rownames <- function(df) {
stopifnot(is.data.frame(df))
attr(df, "row.names") <- .set_row_names(nrow(df))
df
}
22 changes: 18 additions & 4 deletions man/rownames.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions tests/testthat/test-rownames.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
context("rownames")

test_that("has_rownames and remove_rownames", {
expect_false(has_rownames(iris))
expect_true(has_rownames(mtcars))
expect_false(has_rownames(remove_rownames(mtcars)))
expect_error(has_rownames(1:10))
})

0 comments on commit ae76318

Please sign in to comment.