Comments (2)
I noticed a possibly related problem from this Stack Overflow question. This code results in an error
iris |>
group_nest(Species) |>
mutate(boo = map(data, function(x) {
colsym <- sym("Sepal.Length")
x %>% mutate(newcol =! !colsym)
}))
# Error: object 'colsym' not found
Same issue if using .data
iris |>
group_nest(Species) |>
mutate(boo = map(data, function(x) {
colname <- "Sepal.Length"
x %>% mutate(uncle=.data[[colname]])
}))
But if you define the function first rather than inline, it will run
helper <- \(x) {
colsym <- sym("Sepal.Length")
x %>% mutate(newcol=!!colsym)
}
iris |>
group_nest(Species) |>
mutate(data = map(data, helper))
Looking at the trace, it seems the problem is actually coming from rlang::quos
. Something else that will trigger the error is
quos(\(x) {bee <- colsym::sym("a"); mutate(x, newcol=!!colsym)})
Basically the !!
part is being evaluated when defining the function, not when calling the function. Is there a way to delay the evaluation of the !!
or .data[[]]
when applied to functions? Tested with rlang_1.1.3
, purrr_1.0.2
, dplyr_1.1.4
from dplyr.
Related Issues (20)
- Unexpected behavior in summarize() HOT 4
- join_by() get_bys error HOT 1
- Add param to left_join to set value when does not exists match HOT 2
- R: group_by() column1 and perform rle() on column2 HOT 4
- Ascendant order explicit function for arrange HOT 2
- `summarise()` breaks when using `across()` with name collisions HOT 2
- Internal: slightly inaccurate `as_join_by()` implementation for character HOT 8
- Allow tidyselect operators inside `distinct()` HOT 4
- dplyr 1.1.4 breaks on empty dataframes constructed from matrices HOT 1
- `join_by()` allowing OR HOT 1
- Clarity of "duplicated" error message in `rename_with()`
- Negated named variables used in `across()` can't be used with `.by` argument in `mutate()`/`summarise()` etc. HOT 1
- A very strange error in an edge case
- Allow .by=row_number() in mutate statements HOT 1
- Relocate multiple columns in a pairwise fashion HOT 2
- Feature Request: Add `continuous` parameter to `slice()` or new `slice_continuous()` HOT 1
- bind_rows unexpectedly renames columns
- Deprecation of one of dplyr features in package "ncappc" HOT 3
- c_across() docs imply a dependency on rowwise()
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dplyr.