Description Usage Arguments Details Author(s) See Also Examples
move
shifts one or more objects around the task hierarchy (see cd
), whether or not the source and destination are currently attached on the search path.
1 2 3 4 5 6 7 8 | # Usually: unquoted object name, unquoted from and to, e.g.
# move( thing, ., 0/somewhere)
# Use 'what' arg to move several objects at once, e.g.
# move( what=c( "thing1", "thing2"), <<etc>>)
# move( x, from, to)
# move( what=, from, to)
# Next line shows the formal args, but the real usage would NEVER be like this...0
move( x='.', from='.', to='.', what, overwrite.by.default=FALSE, copy=FALSE)
|
x |
unquoted name |
from |
unquoted path specifier (or maintained package specifier) |
to |
unquoted path specifier (or M.P. specifier) |
what |
character vector |
overwrite.by.default |
logical(1) |
copy |
logical(1) |
The normal invocation is something like move( myobj, ., 0/another.task)
– note the lack of quotes around myobj
. To move objects with names that have to be quoted, or to move several objects at the same time, specify the what
argument: e.g. move( what=c( "myobj", "%myop%"), ., 0/another.task)
. Note that move
is playing fast and loose with standard argument matching here; it correctly interprets the .
as from
, rather than x
. This well-meaning subversion can lead to unexpected trouble if you deviate from the paradigms in Examples. If in doubt, you can always name from
and to
.
move
can also handle moves in and out of packages being live-edited (see maintain.packages
). If you want to specify a move to/from your package "whizzbang", the syntax of to
and from
should be ..whizzbang
(i.e. the actual environment where the pre-installed package lives). An alternative for those short of typing practice is maintained.packages$whizzbang
. No quotes in either case.
If move
finds an object with the same name in the destination, you will be asked whether to overwrite it. If you say no, the object will not be moved. If you want to force overwriting of a large number of objects, set overwrite.by.default=TRUE
.
By default, move
will delete the original object after it has safely arrived in its destination. It's normally only necessary (and more helpful) to have just one instance of an object; after all, if it needs to be accessed by several different tasks, you can just move
it to an ancestral task. However, if you really do want a duplicate, you can avoid deletion of the original by setting copy=TRUE
.
You will be prompted for whether to save
the source and destination tasks, if they are attached somewhere, but not in position 1. Normally this is a good idea, but you can always say no, and call Save.pos
later. If the source and/or destination are not attached, they will of course be saved automatically. The top workspace (i.e. current task) .GlobalEnv
is never saved automatically; you have to call Save
yourself.
move
is not meant to be called within other functions.
Mark Bravington
1 2 3 4 5 6 7 8 9 | ## Not run:
move( myobj, ., 0) # back to the ROOT task
move( what="%myop%", 0/first.task, 0/second.task)
# neither source nor destination attached. Funny name requires "what"
move( what=c( "first.obj", "second.obj"), ., ../sibling.task)
# multiple objects require "what"
move( myobj, ..myfirstpack, ..mysecondpack) # live-edited packages
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.