Hi Jim,
Many thanks for your help, I will try a 2D plot and then pass to 3D.
I am trying something like this:
tus.datos<-read.table("datayield.csv",sep=";",header=TRUE)
data_types<-c("PY_1Y","PY_2Y","PY_3Y","PY_4Y","PY_5Y","PY_6Y","PY_7Y")
row_subset<-tus.datos$DATA_TYPE %in% data_types
x<-tus.datos$DATA_TYPE_FM[row_subset]
y<-tus.datos$OBS_VALUE[row_subset]
PERIOD<-tus.datos$TIME_PERIOD=="01/06/2020"
for (PERIOD="TRUE") {
plot(x, y)
}
And the error is
for (PERIOD="TRUE") {
Error: inesperado '=' in "for
(PERIOD=">
>
> plot(x, y)
Error: no se puede ubicar un vector de tama?o 1.3 Gb>
> }
Error: inesperado '}' in "}">
El jue., 6 ago. 2020 a las 2:24, Jim Lemon (<drjimlemon at gmail.com>)
escribi?:
> Hi Pedro,
> I'm not exactly sure of what you want, but try this:
>
> # I downloaded the CSV file as datayield.csv
>
tus.datos<-read.table("datayield.csv",sep=";",header=TRUE)
> library(scatterplot3d)
>
data_types<-c("PY_1Y","PY_2Y","PY_3Y","PY_4Y","PY_5Y","PY_6Y","PY_7Y")
> row_subset<-tus.datos$DATA_TYPE %in% data_types
> scatterplot3d(tus.datos$DATA_TYPE_FM[row_subset],
> tus.datos$OBS_VALUE[row_subset],
> tus.datos$TIME_PERIOD[row_subset],
> color=order(as.numeric(tus.datos$DATA_TYPE[row_subset])))
> legend(9,8,data_types,pch=1,col=1:7,xpd=TRUE)
>
> I used a few tricks to get this to work without being too long a
> script. The color for PY_7Y is yellow, and this can be changed with a
> bit of extra code.
>
> Jim
>
> On Thu, Aug 6, 2020 at 8:40 AM Pedro p?ramo <percentil101 at
gmail.com>
> wrote:
> >
> > Hi all,
> >
> > I have a csv (extracted from a web) I attach the data:
> >
> > I use this code to read the data;
> >
> > library("readr")
> >
> > tusDatos <- read_csv('~/datayield.csv')
> >
> > In this CSV, I want to use three columns:
> >
> > tusDatos$DATA_TYPE_FM, (will be X axis)
> > tusDatos$TIME_PERIOD (will be the pivot to search the values)
> > tusDatos$OBS_VALUE (Y Values)
> >
> > In Data_Type_FM I want to plot a graph where only some rows (included
in
> > thar colum) will be the X-axis and the Y-axis will be OBS:Value for an
> > specific DATE.
> >
> > So for each day (time period) I will plot a plot imagine 04/08/2020 (a
> > value on TIME_PERIOD) for the values
> >
> > c( PY_1Y, PY_2Y,
> > PY_3Y, PY_4Y,
> > PY_5Y, PY_6Y, PY_7Y) this values are included on DATA_TYPE_FM
> >
> > In excel for me is "easy" but in R I dont know how to
proceed can you
> give
> > me some clue to make this king of operations?
> >
> > If I wanted to do a 3D PloT would be possible? only also for this
limited
> > values c( PY_1Y, PY_2Y,
> > PY_3Y, PY_4Y,
> > PY_5Y, PY_6Y, PY_7Y) this values are included on DATA_TYPE_FM
> >
> > tusDatos$DATA_TYPE_FM, (will be X axis)
> > tusDatos$TIME_PERIOD (Z axis)
> > tusDatos$OBS_VALUE (Y Values)
> >
> > Hope I explained properly and hope you can help and guide.
> >
> >
> >
> > datayield.csv
> > <
>
https://drive.google.com/file/d/1WvIIhxXOeg8y_7LssRu0wK9s_c9c03sZ/view?usp=drive_web
> >
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
Hi Pedro, I think the error arises in your "if" statement, should be: if(PERIOD == TRUE) or more simply: if(PERIOD) Jim On Thu, Aug 6, 2020 at 11:54 PM Pedro p?ramo <percentil101 at gmail.com> wrote:> > Hi Jim, > > Many thanks for your help, I will try a 2D plot and then pass to 3D. > > I am trying something like this: > > tus.datos<-read.table("datayield.csv",sep=";",header=TRUE) > > data_types<-c("PY_1Y","PY_2Y","PY_3Y","PY_4Y","PY_5Y","PY_6Y","PY_7Y") > > row_subset<-tus.datos$DATA_TYPE %in% data_types > > x<-tus.datos$DATA_TYPE_FM[row_subset] > y<-tus.datos$OBS_VALUE[row_subset] > > PERIOD<-tus.datos$TIME_PERIOD=="01/06/2020" > > for (PERIOD="TRUE") { > > > plot(x, y) > > } > > > And the error is > > for (PERIOD="TRUE") { > Error: inesperado '=' in "for (PERIOD=" > > > > > > plot(x, y) > Error: no se puede ubicar un vector de tama?o 1.3 Gb > > > > } > Error: inesperado '}' in "}" > > > > > > El jue., 6 ago. 2020 a las 2:24, Jim Lemon (<drjimlemon at gmail.com>) escribi?: >> >> Hi Pedro, >> I'm not exactly sure of what you want, but try this: >> >> # I downloaded the CSV file as datayield.csv >> tus.datos<-read.table("datayield.csv",sep=";",header=TRUE) >> library(scatterplot3d) >> data_types<-c("PY_1Y","PY_2Y","PY_3Y","PY_4Y","PY_5Y","PY_6Y","PY_7Y") >> row_subset<-tus.datos$DATA_TYPE %in% data_types >> scatterplot3d(tus.datos$DATA_TYPE_FM[row_subset], >> tus.datos$OBS_VALUE[row_subset], >> tus.datos$TIME_PERIOD[row_subset], >> color=order(as.numeric(tus.datos$DATA_TYPE[row_subset]))) >> legend(9,8,data_types,pch=1,col=1:7,xpd=TRUE) >> >> I used a few tricks to get this to work without being too long a >> script. The color for PY_7Y is yellow, and this can be changed with a >> bit of extra code. >> >> Jim >> >> On Thu, Aug 6, 2020 at 8:40 AM Pedro p?ramo <percentil101 at gmail.com> wrote: >> > >> > Hi all, >> > >> > I have a csv (extracted from a web) I attach the data: >> > >> > I use this code to read the data; >> > >> > library("readr") >> > >> > tusDatos <- read_csv('~/datayield.csv') >> > >> > In this CSV, I want to use three columns: >> > >> > tusDatos$DATA_TYPE_FM, (will be X axis) >> > tusDatos$TIME_PERIOD (will be the pivot to search the values) >> > tusDatos$OBS_VALUE (Y Values) >> > >> > In Data_Type_FM I want to plot a graph where only some rows (included in >> > thar colum) will be the X-axis and the Y-axis will be OBS:Value for an >> > specific DATE. >> > >> > So for each day (time period) I will plot a plot imagine 04/08/2020 (a >> > value on TIME_PERIOD) for the values >> > >> > c( PY_1Y, PY_2Y, >> > PY_3Y, PY_4Y, >> > PY_5Y, PY_6Y, PY_7Y) this values are included on DATA_TYPE_FM >> > >> > In excel for me is "easy" but in R I dont know how to proceed can you give >> > me some clue to make this king of operations? >> > >> > If I wanted to do a 3D PloT would be possible? only also for this limited >> > values c( PY_1Y, PY_2Y, >> > PY_3Y, PY_4Y, >> > PY_5Y, PY_6Y, PY_7Y) this values are included on DATA_TYPE_FM >> > >> > tusDatos$DATA_TYPE_FM, (will be X axis) >> > tusDatos$TIME_PERIOD (Z axis) >> > tusDatos$OBS_VALUE (Y Values) >> > >> > Hope I explained properly and hope you can help and guide. >> > >> > >> > >> > datayield.csv >> > <https://drive.google.com/file/d/1WvIIhxXOeg8y_7LssRu0wK9s_c9c03sZ/view?usp=drive_web> >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> > https://stat.ethz.ch/mailman/listinfo/r-help >> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> > and provide commented, minimal, self-contained, reproducible code.
Hi Pedro,
Scratch that last email. I remembered that "tus.datos" was so large
that it was hanging my R session last time. However, this seems to
work:
tus.datos<-read.table("datayield.csv",sep=";",
header=TRUE,stringsAsFactors=FALSE)
row_subset<-tus.datos$DATA_TYPE_FM %in% data_types &
tus.datos$TIME_PERIOD == "01/06/2020"
x<-tus.datos$DATA_TYPE_FM[row_subset]
y<-as.numeric(tus.datos$OBS_VALUE[row_subset])
# DATA_TYPE_FM is a character variable
# unless you let it be read as a factor (beware, it may hang your R session)
# and use as.numeric() it will not turn out well.
barplot(y,names.arg=x)
Jim