Andrew,
Thanks. I reviewed the code for "require" and saw:
"if (!character.only)
package <- as.character(substitute(package))"
#This helps me better understand what is going on. I am sharing this
here because I think it might help others understand.
as.character(
In the first one, the argument is a character vector of length 1, so the
code works perfectly fine.
The second is a call, and when coerced to a character vector should look
like
c("[", "packages_i_want_to_use", "1")
You can try this yourself with quote(packages_i_want_to_use[1]) which
returns
Thanks!
# Please, can you help me understand why
require( 'base' ) # works, but
require( packages_i_want_to_use[1] ) # does not work?
# In require( 'base' ), what is the "first argument"?
On Mon, Oct 24, 2022 at 12:29 PM Andrew Simmons wrote:
>
> require(), similarly to library(), does not
Don't load base. It is already loaded.
On October 24, 2022 9:07:44 AM PDT, Kelly Thompson wrote:
># Below, when using require(), why do I get the error message "Error
>in if (!loaded) { : the condition has length > 1" ?
>
># This is my reproducible code:
>
>#create a vector with the names of the
Reread ?require more carefully. Especially for the 'package' argument.
Incidentally, you don't need to require base. It's always available.
-- Bert
On Mon, Oct 24, 2022 at 9:25 AM Kelly Thompson wrote:
>
> # Below, when using require(), why do I get the error message "Error
> in if (!loaded)
You need to pass character.only = TRUE to require() whenever you
specify the package using a character variable.
I agree, the error message is confusing.
/Henrik
On Mon, Oct 24, 2022 at 9:26 AM Kelly Thompson wrote:
>
> # Below, when using require(), why do I get the error message "Error
> in
require(), similarly to library(), does not evaluate its first argument
UNLESS you add character.only = TRUE
require( packages_i_want_to_use[1], character.only = TRUE)
On Mon, Oct 24, 2022, 12:26 Kelly Thompson wrote:
> # Below, when using require(), why do I get the error message "Error
> in
В Mon, 24 Oct 2022 12:07:44 -0400
Kelly Thompson пишет:
> require( packages_i_want_to_use[1] )
> #Error in if (!loaded) { : the condition has length > 1
This seems to be a bug in require(). In addition to understanding
character strings as arguments, require() can load packages named by
# Below, when using require(), why do I get the error message "Error
in if (!loaded) { : the condition has length > 1" ?
# This is my reproducible code:
#create a vector with the names of the packages I want to use
packages_i_want_to_use <- c('base', 'this_pac_does_not_exist')
# Here I get
9 matches
Mail list logo