[R] inserting columns in the middle of a dataframe
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Sep 29 08:18:00 CEST 2006
On Thu, 28 Sep 2006, Joe W. Byers wrote:
> Berton Gunter wrote:
>> Please folks -- use indexing.
>>
>> myframe<-myframe[,c(1,5,2,3,4)]
>>
>> Which begs the question: why bother rearranging the columns anyway, since
>> one can get them used, printed, etc. in any order you wish anytime you want
>> just by specifying the indices in the order you want them. I suspect the
>> question was motivated by too much Sas- or Excel -ism.
> Many of the time series classes expect a date in the first column of the
> matrix or data.frame when creating the date-time object. Retrieving
> data in a SQL query from a dB returns a character representation of the
> date that requires conversion to a date. Performing this conversion is
> easy but inserting this converted date column is not straight forward.
Well-written R <--> DBMS software does return a date or date-time, and if
it is the first column retrieved by other software, you want to _replace_
the _first_ column, not really relevant to the topic of your subject line.
(Doing that is basic data manipulation, covered in Chapter 2 of MASS4, for
example.)
The initial assertion is not (necessarily) true of "ts" or "irts" or "its"
or "zoo", so quite a few time-series class generators expect a date or
date-time to be specified separately.
>>> -----Original Message-----
>>> From: r-help-bounces at stat.math.ethz.ch
>>> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Timothy Bates
>>> Sent: Wednesday, September 13, 2006 3:05 PM
>>> To: Jon Minton; r-help at stat.math.ethz.ch
>>> Subject: Re: [R] inserting columns in the middle of a dataframe
>>>
>>>
>>>> Is there a built-in and simple way to insert new columns in
>>> a dataframe?
>>>
>>> You do this by collecting the columns in the new order you desire, and
>>> making a new frame.
>>>
>>> oldframe <- data.frame(matrix(0:14,ncol=3))
>>> newcol <- data.frame(20:24)
>>> names(newcol) <- "newcol"
>>> newframe <- data.frame(c(oldframe[1],newcol, oldframe[2:3]))
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list