[R] Erase content of dataframe in a single stroke

PIKAL Petr petr@p|k@| @end|ng |rom prechez@@cz
Thu Sep 27 10:32:51 CEST 2018


Hm

I would use

> testdf<-data.frame(A=c(1,2),B=c(2,3),C=c(3,4))
> str(testdf)
'data.frame':   2 obs. of  3 variables:
 $ A: num  1 2
 $ B: num  2 3
 $ C: num  3 4
> testdf<-testdf[-(1:nrow(testdf)),]
> str(testdf)
'data.frame':   0 obs. of  3 variables:
 $ A: num
 $ B: num
 $ C: num

Cheers
Petr

> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Jim Lemon
> Sent: Thursday, September 27, 2018 10:12 AM
> To: Luigi Marongiu <marongiu.luigi using gmail.com>; r-help mailing list <r-help using r-
> project.org>
> Subject: Re: [R] Erase content of dataframe in a single stroke
>
> Ah, yes, try 'as.data.frame" on it.
>
> Jim
>
> On Thu, Sep 27, 2018 at 6:00 PM Luigi Marongiu <marongiu.luigi using gmail.com>
> wrote:
> >
> > Thank you Jim,
> > this requires the definition of an ad hoc function; strange that R
> > does not have a function for this purpose...
> > Anyway, it works but it changes the structure of the data. By
> > redefining the dataframe as I did, I obtain:
> >
> > > df
> > [1] A B C
> > <0 rows> (or 0-length row.names)
> > > str(df)
> > 'data.frame': 0 obs. of  3 variables:
> >  $ A: num
> >  $ B: num
> >  $ C: num
> >
> > When applying your function, I get:
> >
> > > df
> > $A
> > NULL
> >
> > $B
> > NULL
> >
> > $C
> > NULL
> >
> > > str(df)
> > List of 3
> >  $ A: NULL
> >  $ B: NULL
> >  $ C: NULL
> >
> > The dataframe has become a list. Would that affect downstream
> applications?
> >
> > Thank you,
> > Luigi
> > On Thu, Sep 27, 2018 at 9:45 AM Jim Lemon <drjimlemon using gmail.com>
> wrote:
> > >
> > > Hi Luigi,
> > > Maybe this:
> > >
> > > testdf<-data.frame(A=1,B=2,C=3)
> > > > testdf
> > >  A B C
> > > 1 1 2 3
> > > toNull<-function(x) return(NULL)
> > > testdf<-sapply(testdf,toNull)
> > >
> > > Jim
> > > On Thu, Sep 27, 2018 at 5:29 PM Luigi Marongiu
> <marongiu.luigi using gmail.com> wrote:
> > > >
> > > > Dear all,
> > > > I would like to erase the content of a dataframe -- but not the
> > > > dataframe itself -- in a simple and fast way.
> > > > At the moment I do that by re-defining the dataframe itself in this way:
> > > >
> > > > > df <- data.frame(A = numeric(),
> > > > +                   B = numeric(),
> > > > +                   C = character())
> > > > > # assign
> > > > > A <- 5
> > > > > B <- 0.6
> > > > > C <- 103
> > > > > # load
> > > > > R <- cbind(A, B, C)
> > > > > df <- rbind(df, R)
> > > > > df
> > > >   A   B   C
> > > > 1 5 0.6 103
> > > > > # erase
> > > > > df <- data.frame(A = numeric(),
> > > > +                  B = numeric(),
> > > > +                  C = character())
> > > > > df
> > > > [1] A B C
> > > > <0 rows> (or 0-length row.names)
> > > > >
> > > >
> > > > Is there a way to erase the content of the dataframe in a simplier
> > > > (acting on all the dataframe at once instead of naming each column
> > > > individually) and nicer (with a specific erasure command instead
> > > > of re-defyining the object itself) way?
> > > >
> > > > Thank you.
> > > > --
> > > > Best regards,
> > > > Luigi
> > > >
> > > > ______________________________________________
> > > > R-help using 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.
> >
> >
> >
> > --
> > Best regards,
> > Luigi
>
> ______________________________________________
> R-help using 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.
Osobní údaje: Informace o zpracování a ochraně osobních údajů obchodních partnerů PRECHEZA a.s. jsou zveřejněny na: https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information about processing and protection of business partner’s personal data are available on website: https://www.precheza.cz/en/personal-data-protection-principles/
Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a podléhají tomuto právně závaznému prohláąení o vyloučení odpovědnosti: https://www.precheza.cz/01-dovetek/ | This email and any documents attached to it may be confidential and are subject to the legally binding disclaimer: https://www.precheza.cz/en/01-disclaimer/



More information about the R-help mailing list