Re: [R] [FORGED] Re: How create columns for squared values from previous columns?

2017-04-29 Thread C W
On Sat, Apr 29, 2017 at 10:40 AM, Bert Gunter 
wrote:

> Also:
>
> "I was just a bit frustrated that R wouldn't generate dummy variable
> names on the fly."
>
> That is false. See ?lm  and ?model.matrix
>

I am not sure what you mean. I thought if there is a three level dummy
variable, then it would generate a dummy.1, dummy.2 in lm()


>
> -- Bert
> Bert Gunter
>
> "The trouble with having an open mind is that people keep coming along
> and sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>
>
> On Sat, Apr 29, 2017 at 1:06 AM, Göran Broström 
> wrote:
> >
> >
> > On 2017-04-29 06:45, Mike C wrote:
> >>
> >> Thanks Rolf. I was just a bit frustrated that R wouldn't generate
> >> dummy variable names on the fly.
> >>
> >> Also, another question, if I want to put column 5 at column 3,
> >>
> >> dat[, 3:5] <- dat[, c(5,3,4)]
> >>
> >> It does not work, why?
> >
> >
> > It "works", but you need to shuffle the names in the same way:
> >
> > names(dat)[3:5] <- names(dat)[c(5,3,4)]
> >
> > Better(?):
> >
> > perm <- c(1,2,5,3,4)
> > dat <- dat[perm]
> >
> > dat is a list.
> >
> > Göran
> >
> >
> >>
> >>  From: Rolf Turner
> >>  Sent: Friday, April 28, 2017 10:48:42 PM
> >> To: C W Cc: r-help Subject: Re: [FORGED] Re: [R] How create columns
> >> for squared values from previous columns?
> >>
> >> On 29/04/17 13:21, C W wrote:
> >>>
> >>> I came up with this solution,
> >>>
>  cbind(dat, dat[, 1:3]^2)
> >>>
> >>> X1 X2 X3 X4  X5  X1 X2
> >>> X3 1  0.72776481 -1.1332612 -1.9857503 0.46189400 -0.09016379
> >>> 0.529641625 1.28428102 3.9432044 2  0.05126592  0.2858707
> >>> 0.9075806 1.27582713 -0.49438507 0.002628194 0.08172203 0.8237026 3
> >>> -0.40430146  0.5457195 -1.1924042 0.15025594  1.99710475
> >>> 0.163459669 0.29780978 1.4218277 4  1.40746971 -1.2279416
> >>> 0.3296075 0.84411774 -0.52371619 1.980970990 1.50784058 0.1086411 5
> >>> -0.53841150  0.4750082 -0.4705148 0.05591914 -0.31503500
> >>> 0.289886944 0.22563275 0.2213842 6  0.90691210  0.7247171
> >>> 0.8244184 0.73328097 -1.05284737 0.822489552 0.52521494 0.6796657
> >>>
> >>> But, you would NOT ONLY get undesired variable names, BUT ALSO
> >>> duplicated names. I suppose I can use paste() to solve that?
> >>>
> >>> Any better ideas?
> >>
> >>
> >> Well, if the names bizzo is your only worry, you could hit the
> >> result with data.frame() *after* cbinding on the squared terms:
> >>
> >> dat <- matrix(rnorm(30),ncol=5) dat <- cbind(dat,dat[,1:3]^2) dat <-
> >> data.frame(dat) names(dat)
> >>
> >> And as you indicate, the names of a data frame are easily adjusted.
> >>
> >> I wouldn't lose sleep over it.
> >>
> >> cheers,
> >>
> >> Rolf Turner
> >>
> >> P.S. You could also do
> >>
> >> names(dat) <- make.unique(names(dat))
> >>
> >> to your original idea, to get rid of the lack of uniqueness.  The
> >> result is probably "undesirable" but.
> >>
> >> R. T.
> >>
> >> -- Technical Editor ANZJS Department of Statistics University of
> >> Auckland Phone: +64-9-373-7599 ext. 88276
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> __ R-help@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.
> >>
> >
> > __
> > R-help@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.
>
> __
> R-help@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]]

__
R-help@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.

Re: [R] [FORGED] Re: How create columns for squared values from previous columns?

2017-04-29 Thread C W
I thought it's just deleting and reassigning those specific columns.

I guess I don't know R as much as I think I do. :(

On Sat, Apr 29, 2017 at 4:06 AM, Göran Broström 
wrote:

>
>
> On 2017-04-29 06:45, Mike C wrote:
>
>> Thanks Rolf. I was just a bit frustrated that R wouldn't generate
>> dummy variable names on the fly.
>>
>> Also, another question, if I want to put column 5 at column 3,
>>
>> dat[, 3:5] <- dat[, c(5,3,4)]
>>
>> It does not work, why?
>>
>
> It "works", but you need to shuffle the names in the same way:
>
> names(dat)[3:5] <- names(dat)[c(5,3,4)]
>
> Better(?):
>
> perm <- c(1,2,5,3,4)
> dat <- dat[perm]
>
> dat is a list.
>
> Göran
>
>
>>  From: Rolf Turner
>>  Sent: Friday, April 28, 2017 10:48:42 PM
>> To: C W Cc: r-help Subject: Re: [FORGED] Re: [R] How create columns
>> for squared values from previous columns?
>>
>> On 29/04/17 13:21, C W wrote:
>>
>>> I came up with this solution,
>>>
>>> cbind(dat, dat[, 1:3]^2)

>>> X1 X2 X3 X4  X5  X1 X2
>>> X3 1  0.72776481 -1.1332612 -1.9857503 0.46189400 -0.09016379
>>> 0.529641625 1.28428102 3.9432044 2  0.05126592  0.2858707
>>> 0.9075806 1.27582713 -0.49438507 0.002628194 0.08172203 0.8237026 3
>>> -0.40430146  0.5457195 -1.1924042 0.15025594  1.99710475
>>> 0.163459669 0.29780978 1.4218277 4  1.40746971 -1.2279416
>>> 0.3296075 0.84411774 -0.52371619 1.980970990 1.50784058 0.1086411 5
>>> -0.53841150  0.4750082 -0.4705148 0.05591914 -0.31503500
>>> 0.289886944 0.22563275 0.2213842 6  0.90691210  0.7247171
>>> 0.8244184 0.73328097 -1.05284737 0.822489552 0.52521494 0.6796657
>>>
>>> But, you would NOT ONLY get undesired variable names, BUT ALSO
>>> duplicated names. I suppose I can use paste() to solve that?
>>>
>>> Any better ideas?
>>>
>>
>> Well, if the names bizzo is your only worry, you could hit the
>> result with data.frame() *after* cbinding on the squared terms:
>>
>> dat <- matrix(rnorm(30),ncol=5) dat <- cbind(dat,dat[,1:3]^2) dat <-
>> data.frame(dat) names(dat)
>>
>> And as you indicate, the names of a data frame are easily adjusted.
>>
>> I wouldn't lose sleep over it.
>>
>> cheers,
>>
>> Rolf Turner
>>
>> P.S. You could also do
>>
>> names(dat) <- make.unique(names(dat))
>>
>> to your original idea, to get rid of the lack of uniqueness.  The
>> result is probably "undesirable" but.
>>
>> R. T.
>>
>> -- Technical Editor ANZJS Department of Statistics University of
>> Auckland Phone: +64-9-373-7599 ext. 88276
>>
>> [[alternative HTML version deleted]]
>>
>> __ R-help@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.
>>
>>
> __
> R-help@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/posti
> ng-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

[[alternative HTML version deleted]]

__
R-help@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.

Re: [R] [FORGED] Re: How create columns for squared values from previous columns?

2017-04-29 Thread Bert Gunter
Also:

"I was just a bit frustrated that R wouldn't generate dummy variable
names on the fly."

That is false. See ?lm  and ?model.matrix

-- Bert
Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Sat, Apr 29, 2017 at 1:06 AM, Göran Broström  wrote:
>
>
> On 2017-04-29 06:45, Mike C wrote:
>>
>> Thanks Rolf. I was just a bit frustrated that R wouldn't generate
>> dummy variable names on the fly.
>>
>> Also, another question, if I want to put column 5 at column 3,
>>
>> dat[, 3:5] <- dat[, c(5,3,4)]
>>
>> It does not work, why?
>
>
> It "works", but you need to shuffle the names in the same way:
>
> names(dat)[3:5] <- names(dat)[c(5,3,4)]
>
> Better(?):
>
> perm <- c(1,2,5,3,4)
> dat <- dat[perm]
>
> dat is a list.
>
> Göran
>
>
>>
>>  From: Rolf Turner
>>  Sent: Friday, April 28, 2017 10:48:42 PM
>> To: C W Cc: r-help Subject: Re: [FORGED] Re: [R] How create columns
>> for squared values from previous columns?
>>
>> On 29/04/17 13:21, C W wrote:
>>>
>>> I came up with this solution,
>>>
 cbind(dat, dat[, 1:3]^2)
>>>
>>> X1 X2 X3 X4  X5  X1 X2
>>> X3 1  0.72776481 -1.1332612 -1.9857503 0.46189400 -0.09016379
>>> 0.529641625 1.28428102 3.9432044 2  0.05126592  0.2858707
>>> 0.9075806 1.27582713 -0.49438507 0.002628194 0.08172203 0.8237026 3
>>> -0.40430146  0.5457195 -1.1924042 0.15025594  1.99710475
>>> 0.163459669 0.29780978 1.4218277 4  1.40746971 -1.2279416
>>> 0.3296075 0.84411774 -0.52371619 1.980970990 1.50784058 0.1086411 5
>>> -0.53841150  0.4750082 -0.4705148 0.05591914 -0.31503500
>>> 0.289886944 0.22563275 0.2213842 6  0.90691210  0.7247171
>>> 0.8244184 0.73328097 -1.05284737 0.822489552 0.52521494 0.6796657
>>>
>>> But, you would NOT ONLY get undesired variable names, BUT ALSO
>>> duplicated names. I suppose I can use paste() to solve that?
>>>
>>> Any better ideas?
>>
>>
>> Well, if the names bizzo is your only worry, you could hit the
>> result with data.frame() *after* cbinding on the squared terms:
>>
>> dat <- matrix(rnorm(30),ncol=5) dat <- cbind(dat,dat[,1:3]^2) dat <-
>> data.frame(dat) names(dat)
>>
>> And as you indicate, the names of a data frame are easily adjusted.
>>
>> I wouldn't lose sleep over it.
>>
>> cheers,
>>
>> Rolf Turner
>>
>> P.S. You could also do
>>
>> names(dat) <- make.unique(names(dat))
>>
>> to your original idea, to get rid of the lack of uniqueness.  The
>> result is probably "undesirable" but.
>>
>> R. T.
>>
>> -- Technical Editor ANZJS Department of Statistics University of
>> Auckland Phone: +64-9-373-7599 ext. 88276
>>
>> [[alternative HTML version deleted]]
>>
>> __ R-help@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.
>>
>
> __
> R-help@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.

__
R-help@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.

Re: [R] [FORGED] Re: How create columns for squared values from previous columns?

2017-04-29 Thread Göran Broström



On 2017-04-29 06:45, Mike C wrote:

Thanks Rolf. I was just a bit frustrated that R wouldn't generate
dummy variable names on the fly.

Also, another question, if I want to put column 5 at column 3,

dat[, 3:5] <- dat[, c(5,3,4)]

It does not work, why?


It "works", but you need to shuffle the names in the same way:

names(dat)[3:5] <- names(dat)[c(5,3,4)]

Better(?):

perm <- c(1,2,5,3,4)
dat <- dat[perm]

dat is a list.

Göran



 From: Rolf Turner
 Sent: Friday, April 28, 2017 10:48:42 PM
To: C W Cc: r-help Subject: Re: [FORGED] Re: [R] How create columns
for squared values from previous columns?

On 29/04/17 13:21, C W wrote:

I came up with this solution,


cbind(dat, dat[, 1:3]^2)

X1 X2 X3 X4  X5  X1 X2
X3 1  0.72776481 -1.1332612 -1.9857503 0.46189400 -0.09016379
0.529641625 1.28428102 3.9432044 2  0.05126592  0.2858707
0.9075806 1.27582713 -0.49438507 0.002628194 0.08172203 0.8237026 3
-0.40430146  0.5457195 -1.1924042 0.15025594  1.99710475
0.163459669 0.29780978 1.4218277 4  1.40746971 -1.2279416
0.3296075 0.84411774 -0.52371619 1.980970990 1.50784058 0.1086411 5
-0.53841150  0.4750082 -0.4705148 0.05591914 -0.31503500
0.289886944 0.22563275 0.2213842 6  0.90691210  0.7247171
0.8244184 0.73328097 -1.05284737 0.822489552 0.52521494 0.6796657

But, you would NOT ONLY get undesired variable names, BUT ALSO
duplicated names. I suppose I can use paste() to solve that?

Any better ideas?


Well, if the names bizzo is your only worry, you could hit the
result with data.frame() *after* cbinding on the squared terms:

dat <- matrix(rnorm(30),ncol=5) dat <- cbind(dat,dat[,1:3]^2) dat <-
data.frame(dat) names(dat)

And as you indicate, the names of a data frame are easily adjusted.

I wouldn't lose sleep over it.

cheers,

Rolf Turner

P.S. You could also do

names(dat) <- make.unique(names(dat))

to your original idea, to get rid of the lack of uniqueness.  The
result is probably "undesirable" but.

R. T.

-- Technical Editor ANZJS Department of Statistics University of
Auckland Phone: +64-9-373-7599 ext. 88276

[[alternative HTML version deleted]]

__ R-help@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.



__
R-help@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.


Re: [R] [FORGED] Re: How create columns for squared values from previous columns?

2017-04-28 Thread Mike C
Thanks Rolf.
I was just a bit frustrated that R wouldn't generate dummy variable names on 
the fly.

Also, another question, if I want to put column 5 at column 3,

dat[, 3:5] <- dat[, c(5,3,4)]

It does not work, why?


From: Rolf Turner 
Sent: Friday, April 28, 2017 10:48:42 PM
To: C W
Cc: r-help
Subject: Re: [FORGED] Re: [R] How create columns for squared values from 
previous columns?

On 29/04/17 13:21, C W wrote:
> I came up with this solution,
>
>> cbind(dat, dat[, 1:3]^2)
>X1 X2 X3 X4  X5  X1
> X2X3
> 1  0.72776481 -1.1332612 -1.9857503 0.46189400 -0.09016379 0.529641625
> 1.28428102 3.9432044
> 2  0.05126592  0.2858707  0.9075806 1.27582713 -0.49438507 0.002628194
> 0.08172203 0.8237026
> 3 -0.40430146  0.5457195 -1.1924042 0.15025594  1.99710475 0.163459669
> 0.29780978 1.4218277
> 4  1.40746971 -1.2279416  0.3296075 0.84411774 -0.52371619 1.980970990
> 1.50784058 0.1086411
> 5 -0.53841150  0.4750082 -0.4705148 0.05591914 -0.31503500 0.289886944
> 0.22563275 0.2213842
> 6  0.90691210  0.7247171  0.8244184 0.73328097 -1.05284737 0.822489552
> 0.52521494 0.6796657
>
> But, you would NOT ONLY get undesired variable names, BUT ALSO duplicated
> names. I suppose I can use paste() to solve that?
>
> Any better ideas?

Well, if the names bizzo is your only worry, you could hit the result
with data.frame() *after* cbinding on the squared terms:

dat <- matrix(rnorm(30),ncol=5)
dat <- cbind(dat,dat[,1:3]^2)
dat <- data.frame(dat)
names(dat)

And as you indicate, the names of a data frame are easily adjusted.

I wouldn't lose sleep over it.

cheers,

Rolf Turner

P.S. You could also do

 names(dat) <- make.unique(names(dat))

to your original idea, to get rid of the lack of uniqueness.  The result
is probably "undesirable" but.

R. T.

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

[[alternative HTML version deleted]]

__
R-help@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.


Re: [R] [FORGED] Re: How create columns for squared values from previous columns?

2017-04-28 Thread Rolf Turner

On 29/04/17 13:21, C W wrote:

I came up with this solution,


cbind(dat, dat[, 1:3]^2)

   X1 X2 X3 X4  X5  X1
X2X3
1  0.72776481 -1.1332612 -1.9857503 0.46189400 -0.09016379 0.529641625
1.28428102 3.9432044
2  0.05126592  0.2858707  0.9075806 1.27582713 -0.49438507 0.002628194
0.08172203 0.8237026
3 -0.40430146  0.5457195 -1.1924042 0.15025594  1.99710475 0.163459669
0.29780978 1.4218277
4  1.40746971 -1.2279416  0.3296075 0.84411774 -0.52371619 1.980970990
1.50784058 0.1086411
5 -0.53841150  0.4750082 -0.4705148 0.05591914 -0.31503500 0.289886944
0.22563275 0.2213842
6  0.90691210  0.7247171  0.8244184 0.73328097 -1.05284737 0.822489552
0.52521494 0.6796657

But, you would NOT ONLY get undesired variable names, BUT ALSO duplicated
names. I suppose I can use paste() to solve that?

Any better ideas?


Well, if the names bizzo is your only worry, you could hit the result 
with data.frame() *after* cbinding on the squared terms:


dat <- matrix(rnorm(30),ncol=5)
dat <- cbind(dat,dat[,1:3]^2)
dat <- data.frame(dat)
names(dat)

And as you indicate, the names of a data frame are easily adjusted.

I wouldn't lose sleep over it.

cheers,

Rolf Turner

P.S. You could also do

names(dat) <- make.unique(names(dat))

to your original idea, to get rid of the lack of uniqueness.  The result 
is probably "undesirable" but.


R. T.

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

__
R-help@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.