[R] Problem with adding a row in a data table

Jeff Newmiller jdnewmil at dcn.davis.ca.us
Sun Sep 4 18:30:37 CEST 2016


Please use Reply-all to keep the mailing list in the loop. I cannot provide private assistance, and others may provide valuable input or respond faster than I can. 

It is very common that people cannot provide the original data. That means more work for YOU, though,  not for us.  It is up to you to create a small simulated data set and process it as if it were your original data. 

Your idea will indeed be a good algorithm, but you will fail in R if you don't set it up differently. Read [1] and provide us with a reproducible example data set and desired result and someone here will be able to show you how to do it correctly. 

[1] http://adv-r.had.co.nz/Reproducibility.html
-- 
Sent from my phone. Please excuse my brevity.

On September 4, 2016 8:28:39 AM PDT, Filippos Katsios <katsiosf at gmail.com> wrote:
>Dear Jeff,
>I am sorry but I am not allowed to share the original data. You are
>right
>about the Prod_name row. However, my goal is to split the columns 
>"Date 1"
>etc into weekdays and weekends and manipulate them separately. I
>thought
>this would be the best way to do that (Assign to each day a number from
>1:7
>and then splitting them by a logical vector). Thank you for your help
>and
>your time!
>
>Filippos
>
>On 4 September 2016 at 18:20, Jeff Newmiller <jdnewmil at dcn.davis.ca.us>
>wrote:
>
>> The "c" function creates vectors. Rows of data frames are data
>frames, not
>> vectors.
>>
>> new_row  <- data.frame( Prod_name = "Day_name",  `Date 1`=1, `Date
>> 2`=2,`Date 3`=3 )
>> data_may  <- rbind( new_row, data_may )
>>
>> Furthermore, data frames are NOT spreadsheets. "Day_num" looks
>> suspiciously UNlike a product name, which may mean the corresponding
>values
>> in that row are not Dates, which would also lead you into trouble.
>>
>> Please read the Posting Guide. In particular, you should read about
>making
>> your examples reproducible. Part of that is posting in plain text and
>using
>> the dput function to give us your sample data, because all too often
>the
>> problem lies in the details of how you have imported and manipulated
>your
>> data and the shortest way for us to see that the data are okay is to
>see it
>> as it exists in your R script so far.
>> --
>> Sent from my phone. Please excuse my brevity.
>>
>> On September 4, 2016 6:22:48 AM PDT, Filippos Katsios
><katsiosf at gmail.com>
>> wrote:
>> >Dear All,
>> >
>> >I am relatively new to R and certainly new to the e-mailing list. I
>> >need
>> >your help. I am working on a data frame, which looks like this:
>> >
>> >Prod_name |  Date 1  |  Date 2 |  Date 3  |
>> >------------------|-------------|------------|--------------|
>> >Product 1    |     3      |      4     |     0       |
>> >------------------|-------------|------------|--------------|
>> >Product 2    |     5      |      3     |     3       |
>> >------------------|-------------|------------|--------------|
>> >Product 3    |     2      |      8     |     5       |
>> >
>> >I am trying to add a new row with the following results:
>> >
>> >Prod_name |  Date 1  |  Date 2 |  Date 3  |
>> >------------------|-------------|------------|--------------|
>> >Day_num    |     1      |      2     |      3      |
>> >------------------|-------------|------------|--------------|
>> >Product 1    |     3      |      4     |     0       |
>> >------------------|-------------|------------|--------------|
>> >Product 2    |     5      |      3     |     3       |
>> >------------------|-------------|------------|--------------|
>> >Product 3    |     2      |      8     |     5       |
>> >
>> >Bellow you can find the things I tried and the results.
>> >1)
>> >r <- 1
>> >newrow <- rep(1:7, 5, len=ncol(data_may)-1)
>> >insertRow <- function(data_may, newrow, r) {
>> >data_may[seq(r+1,nrow(data_may)+1),] <-
>> >data_may[seq(r,nrow(data_may)),]
>> >  data_may[r,] <- newrow
>> >  data_may
>> >}
>> >
>> >It doesn't put the new row.
>> >2)
>> >data_may<-rbind(data_may,c("Day_num",newrow))
>> >
>> >Error: cannot convert object to a data frame
>> >
>> >3)
>> >data_may[2093,]<-c("Day_num",rep(1:7, 5, len=ncol(data_may)-1))
>> >
>> >It makes all the columns characters and when i try to change it it
>says
>> >that you can change a list
>> >
>> >How can I add the row while keeping the columns (apart from the
>first
>> >one)
>> >as numeric or double or integer?
>> >
>> >Thank you, in advance, for your help!
>> >
>> >Kind regards
>> >Filippos
>> >
>> >       [[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.
>>
>>



More information about the R-help mailing list