Skip to content

Conversation

@suhaani-agarwal
Copy link
Contributor

trying out if tests are passing with a new branch with some changes in PR#188

@suhaani-agarwal
Copy link
Contributor Author

suhaani-agarwal commented Apr 6, 2025

All the files ( mentioned in issue #165 ) with replaced plyr occurences are working now and tests are passing. @tdhock Please review and let me know if these changes are okay or anything needs change.

@tdhock
Copy link
Collaborator

tdhock commented Apr 6, 2025

thanks! please remove plyr from DESCRIPTION

@suhaani-agarwal
Copy link
Contributor Author

thanks! please remove plyr from DESCRIPTION

plyr isnt present in Suggests. in DESCRIPTION it is present as an import

If i remove this, it will cause error in CRAN checks because it is also being imported in NAMESPACE . something like this. :
Namespace dependency missing from DESCRIPTION Imports/Depends entries: ‘plyr’

@tdhock
Copy link
Collaborator

tdhock commented Apr 7, 2025

please remove from NAMESPACE too

@suhaani-agarwal
Copy link
Contributor Author

suhaani-agarwal commented Apr 7, 2025

NAMESPACE contains plyr imports - "as.quoted" and "defaults" which are being used in almost all test files. Removing these is causing many errors.

Should all these occurrences of as.quoted and defaults be replaced?

@tdhock
Copy link
Collaborator

tdhock commented Apr 7, 2025

yes please

@suhaani-agarwal
Copy link
Contributor Author

I have replaced the plyr imported functions as.quoted() and defaults() that were imported in NAMESPACE and were being used in many files in /R folder. I replaced them with functions with same functionality in utilities.r and the compiler tests are working with those functions (which were earlier failing).

The plyr occurences have been replaced in /tests folder and as.quoted() and defaults() have also been replaced in /R folder

But the CRAN tests are still giving the same error : Error: Namespace dependency missing from DESCRIPTION Imports/Depends entries: ‘plyr’

Maybe it is because of the presence of plyr being used in other files in the /R folder ?

What shall be done about these?

grep -rnw './R' -e 'plyr'
./R/plot.r:48:#' ds <- plyr::ddply(df, "gp", plyr::summarise, mean = mean(y), sd = sd(y))
./R/stat-summary.r:104:  summary <- plyr::ddply(data, c("group", "x"), summary, ...)
./R/stat-summary.r:105:  unique <- plyr::ddply(data, c("group", "x"), uniquecols)
./R/stat-summary.r:133:    plyr::rename(
./R/facet-layout.r:29:  panel <- plyr::id(base, drop = TRUE)
./R/facet-layout.r:32:  rows <- if (is.null(names(rows))) 1L else plyr::id(base[names(rows)], drop = TRUE)
./R/facet-layout.r:33:  cols <- if (is.null(names(cols))) 1L else plyr::id(base[names(cols)], drop = TRUE)
./R/facet-layout.r:51:  base <- plyr::unrowname(layout_base(data, vars, drop = drop))
./R/facet-layout.r:53:  id <- plyr::id(base, drop = TRUE)
./R/facet-layout.r:71:  panels <- cbind(layout, plyr::unrowname(base))
./R/facet-layout.r:92:  values <- compact(plyr::llply(data, quoted_df, vars = vars))
./R/facet-layout.r:96:  has_all <- unlist(plyr::llply(values, length)) == length(vars)
./R/facet-layout.r:101:  base <- unique(plyr::ldply(values[has_all]))
./R/facet-layout.r:137:  unique_values <- plyr::llply(df, ulevels)
./R/facet-layout.r:150:  plyr::unrowname(cbind(
./R/facet-layout.r:157:  values <- plyr::eval.quoted(vars, data, emptyenv(), try = TRUE)
./R/stat-summary-bin.R:52:    out <- plyr::ddply(data, "bin", fun)
./R/stat-sum.r:45:    counts <- plyr::count(data, group_by, wt_var = "weight")
./R/stat-sum.r:46:    counts <- plyr::rename(counts, c(freq = "n"), warn_missing = FALSE)
./R/geom-.r:79:    plyr::dlply(data, "PANEL", function(data) {
./R/geom-.r:109:      data <- plyr::quickdf(self$default_aes[missing_aes])
./R/coord-munch.r:63:  plyr::unrowname(data.frame(x = x, y = y, aes_df))
./R/coord-munch.r:115:  lf <- plyr::rename(lf, c(x1 = "t1", x2 = "t2", y1 = "r1", y2 = "r2",
./R/scales-.r:81:  plyr::quickdf(c(mapped, df[setdiff(names(df), names(mapped))]))
./R/scales-.r:90:  plyr::quickdf(c(transformed, df[setdiff(names(df), names(transformed))]))
./R/scales-.r:103:  datacols <- plyr::tryapply(
./R/facet-wrap.r:282:  info <- plyr::ldply(locs, find_pos, layout = layout, size = size)
./R/geom-dotplot.r:216:    data <- plyr::ddply(data, plyvars, function(xx) {
./R/geom-dotplot.r:241:      data <- plyr::ddply(data, "group", transform,
./R/layer.r:193:      include <- data.frame(plyr::eval.quoted(self$subset, data, plot$env))
./R/layer.r:251:    stat_data <- plyr::quickdf(lapply(new, eval, data, baseenv()))
./R/bench.r:19:  plyr::unrowname(data.frame(
./R/facet-labels.r:398:#' msleep$conservation2 <- plyr::revalue(msleep$conservation,
./R/facet-labels.r:508:    row_height <- function(row) max(plyr::laply(row, height_cm))
./R/facet-labels.r:514:    col_width <- function(col) max(plyr::laply(col, width_cm))
./R/geom-path.r:170:    attr <- plyr::ddply(munched, "group", function(df) {
./R/geom-path.r:287:    data <- plyr::ddply(data, "group", stairstep, direction = direction)
./R/geom-path.r:292:    g.data <- plyr::ddply(g.data, "group", function(df) stairstep(df))
./R/position-collide.r:44:    plyr::ddply(data, "xmin", strategy, width = width)
./R/position-collide.r:47:    data <- plyr::ddply(data, "xmin", strategy, width = width)
./R/fortify-map.r:86:#' seats <- plyr::ddply(ia, "subregion", plyr::colwise(mid_range, c("lat", "long")))
./R/stat-bindot.r:39:        data    <- plyr::arrange(data, x)
./R/stat-bindot.r:40:        newdata <- plyr::arrange(newdata, x)
./R/stat-bindot.r:46:        data    <- plyr::arrange(data, y)
./R/stat-bindot.r:47:        newdata <- plyr::arrange(newdata, x)
./R/stat-bindot.r:112:      data <- plyr::ddply(data, "bincenter", plyr::summarise, binwidth = binwidth[1], count = sum(weight))
./R/stat-bindot.r:166:    results <- plyr::ddply(results, "bin", function(df) {
./R/coord-polar.r:286:    plyr::rename(data, c("y" = "theta", "x" = "r"), warn_missing = FALSE)
./R/coord-polar.r:288:    plyr::rename(data, c("y" = "r", "x" = "theta"), warn_missing = FALSE)
./R/aes.r:93:  plyr::rename(x, .base_to_ggplot, warn_missing = FALSE)
./R/panel.r:69:    panel$x_scales <- plyr::rlply(max(layout$SCALE_X), x_scale$clone())
./R/panel.r:72:    panel$y_scales <- plyr::rlply(max(layout$SCALE_Y), y_scale$clone())
./R/panel.r:146:  scale_index <- plyr::split_indices(scale_id, n)
./R/geom-ribbon.r:94:    positions <- plyr::summarise(data,
./R/z_facets.R:32:  if (plyr::empty(label_df)) {
./R/z_facets.R:46:  labels_df[] <- plyr::llply(labels_df, format, justify = "none")
./R/z_facets.R:132:        layout <- plyr::join(layout, props, by = scale.type)
./R/fortify-spatial.r:17:  coords <- plyr::ldply(model@polygons,fortify)
./R/fortify-spatial.r:26:  plyr::ldply(model@polygons, fortify)
./R/fortify-spatial.r:34:  pieces <- plyr::ldply(seq_along(subpolys), function(i) {
./R/fortify-spatial.r:62:  plyr::ldply(model@lines, fortify)
./R/fortify-spatial.r:70:  pieces <- plyr::ldply(seq_along(lines), function(i) {
./R/z_animint.R:7:#' @import plyr
./R/hexbin.R:10:    plyr::round_any(min(x), binwidth, floor) - 1e-6,
./R/hexbin.R:11:    plyr::round_any(max(x), binwidth, ceiling) + 1e-6
./R/grouping.r:2:# of plyr::id() used by add_group()
./R/grouping.r:19:      data$group <- plyr::id(data[disc], drop = TRUE)
./R/grouping.r:24:    data$group <- plyr::id(data["group"], drop = TRUE)
./R/grouping.r:36:  # are different from NO_GROUP (since they are a result of plyr::id()). NA is
./R/facet-locate.r:35:    data <- plyr::unrowname(data[data_rep, , drop = FALSE])
./R/facet-locate.r:36:    facet_vals <- plyr::unrowname(cbind(
./R/facet-locate.r:49:    keys <- plyr::join.keys(facet_vals, panels, by = vars)
./R/facet-locate.r:74:    data <- plyr::unrowname(data[data_rep, , drop = FALSE])
./R/facet-locate.r:75:    facet_vals <- plyr::unrowname(cbind(
./R/facet-locate.r:80:  keys <- plyr::join.keys(facet_vals, panels, by = names(vars))
./R/geom-hex.r:91:    newdata <- plyr::ddply(g.data, "group", function(df){
./R/geom-segment.r:106:    ends <- plyr::rename(subset(data, select = c(-x, -y)), c("xend" = "x", "yend" = "y"),
./R/position-.r:61:    plyr::ddply(data, "PANEL", function(data) {
./R/stat-.r:86:    plyr::ddply(data, "PANEL", function(data) {
./R/stat-.r:114:    do.call(plyr::rbind.fill, stats)
./R/stat-bin2d.r:117:    origin <- plyr::round_any(range[1], binwidth, floor)
./R/geom-rect.r:40:      polys <- plyr::alply(data, 1, function(row) {
./R/geom-violin.r:106:    plyr::ddply(data, "group", transform,
./R/geom-violin.r:121:      plyr::arrange(transform(data, x = xminv), y),
./R/geom-violin.r:122:      plyr::arrange(transform(data, x = xmaxv), -y)
./R/geom-violin.r:161:    newdata <- plyr::ddply(g.data, "group", function(df){
./R/geom-violin.r:162:                  rbind(plyr::arrange(transform(df, x=xminv), y),
./R/geom-violin.r:163:                        plyr::arrange(transform(df, x=xmaxv), -y))
./R/geom-violin.r:165:    newdata <- plyr::ddply(newdata, "group", function(df) rbind(df, df[1,]))
./R/utilities-matrix.r:18:  do.call("unit.c", do.call("interleave.default", plyr::llply(list(...), as.list)))
./R/utilities-matrix.r:25:  lengths <- unique(setdiff(plyr::laply(vectors, length), 1))
./R/utilities-matrix.r:30:  singletons <- plyr::laply(vectors, length) == 1
./R/utilities-matrix.r:31:  vectors[singletons] <- plyr::llply(vectors[singletons], rep, lengths)
./R/aes-group-order.r:36:## #'   plyr::colwise(rescale01)(economics[, -(1:2)]))
./R/guide-legend.r:254:  guide$geoms <- plyr::llply(layers, function(layer) {
./R/facet-viewports.r:18:  grid <- plyr::ldply(names(grobs), make_grid)
./R/facet-viewports.r:19:  plyr::mlply(grid, assign_vp)
./R/facet-viewports.r:37:  do.call("vpList", plyr::mlply(pos, vp))

@tdhock
Copy link
Collaborator

tdhock commented Jul 18, 2025

we should classify each of these uses:

  • is the feature supported in animint2? if not, remove (for example, geom_violin, stat_sum)
  • if so, change plyr:: to data.table code.

however this would not actually change any user-facing functionality, so I believe it is not high priority.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants