You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've got a script that works fine with individual pirate plots. I want to do 3 pirateplots side by side, so I am specifying the column name for x variable as mycol[i].
This works fine with a beanplot. It also works if there's just one pirateplot.
Using the loop with pirateplot, though, I get the error message
Error in var(y) : 'x' is NULL
Here is the script - I think it's the initial command to select data that throws it, rather than the use of i index in later bits of script.
for (i in 1:3){
pirateplot(all.data[,mycol[i]]~ all.data$randomtwininclude,
point.o = .5,
bar.f.o=.0,
inf.f.o=.2,
bean.b.o=.5,
jitter=.1,
ylab=mypheno[i],
ylim=c(myylim[i,1],myylim[i,2]),
main=paste0(mypheno[i]),
data=all.data
)
}
The text was updated successfully, but these errors were encountered:
Hi there @oscci , the problem is in how you're specifying the formula. Formulas should only contained unquoted names of variables. In your code, you're including vectors in the formula -- this won't work.
If you want to create plots side by side, you could consider reshaping your data so that your 3 columns are represented as rows in a new variable called group (see the gather() function in the tidyverse https://tidyr.tidyverse.org/reference/gather.html) . Then, you can include the new variable as a second dependent variable in your formula.
# Get latest version from github to get the beside argument
devtools::install_github("ndphillips/yarrr", build_vignettes = TRUE)
library(yarrr)
library(tidyverse)
pirateplot(formula = weight ~ Diet + Time,
data = ChickWeight %>% filter(Time < 5),
beside = FALSE)
I've got a script that works fine with individual pirate plots. I want to do 3 pirateplots side by side, so I am specifying the column name for x variable as mycol[i].
This works fine with a beanplot. It also works if there's just one pirateplot.
Using the loop with pirateplot, though, I get the error message
Error in var(y) : 'x' is NULL
Here is the script - I think it's the initial command to select data that throws it, rather than the use of i index in later bits of script.
for (i in 1:3){
pirateplot(all.data[,mycol[i]]~ all.data$randomtwininclude,
point.o = .5,
bar.f.o=.0,
inf.f.o=.2,
bean.b.o=.5,
jitter=.1,
ylab=mypheno[i],
ylim=c(myylim[i,1],myylim[i,2]),
main=paste0(mypheno[i]),
data=all.data
)
}
The text was updated successfully, but these errors were encountered: