[R] Remove double quotation marks

Nutter, Benjamin NutterB at ccf.org
Tue Dec 29 22:01:57 CET 2009


It seems from your example that you're assuming all of the vectors have
the same length.  If this is the case, then a data.frame might be your
friend.

> df <- data.frame(
    v1 = c(0, 1, 0),
    v2 = c(1, 1, 0),
    v3 = c(2, 1, 2),
    v4 = c(2, 2, 1),
    v5 = c(0, 1, 1) )

> x <- 5

> get.var <- c("v1", "v2", paste("v", x, sep=""))

> df[, get.var]

Or, if you know your variables in the data.frame will be named
sequentially

> df[, c(1, 2, x)]


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Lisa
Sent: Tuesday, December 29, 2009 3:55 PM
To: r-help at r-project.org
Subject: Re: [R] Remove double quotation marks


Thank you for your help. But here I just want to combine some vectors by
column based on the numbers determined by other R script. 

For example, I have five vectors:

v1 <- c(0, 1, 0)
v2 <- c(1, 1, 0)
v3 <- c(2, 1, 2)
v4 <- c(2, 2, 1)
v5 <- c(0, 1, 1)

If I am going to combine the first two vectors, and one more other
vector determined by my other R script, say, vector 5.  Then my R script
is

x <- 5
cbind(v1, v2, paste("v", x, sep = ""))

The output is

     v1  v2      
[1,] "0" "1" "v5"
[2,] "1" "1" "v5"
[3,] "0" "0" "v5"

This is not what I want. I want to get this:

     v1  v2  v5     
[1,]  0   1   0
[2,]  1   1   1
[3,]  0   0   1

Can you give me further suggestions or comments? Thanks a lot.

Lisa



Barry Rowlingson wrote:
> 
> On Tue, Dec 29, 2009 at 6:31 PM, Lisa <lisajca at gmail.com> wrote:
>>
>> Thank you for your reply. But in the following case, "cat()" or
"print()"
>> doesn't work.
>>
>> data.frame(cbind(variable 1, variable 2, cat(paste("variable", x), 
>> "\n"))), where x is a random number generated by other R script.
>>
>> Lisa
> 
>  Yes, because you are Doing It Wrong. If you have data that is indexed

> by an integer, don't store it in variables called variable1, variable2

> etc, because very soon you will be posting a message to R-help that is

> covered in the R FAQ...
> 
>  Store it in a list:
> 
>  v = list()
>  v[[1]] = c(1,2,3,4,5)
>  v[[2]] = c(4,5,6,7,8,9,9,9)
> 
> then you can do v[[i]] for integer values of i.
> 
> If you really really must get values of variable by name, perhaps 
> because someone has given you a data file with variables called
> variable1 to variable99, then use the paste() construction together 
> with the 'get' function:
> 
> [ not tested, but should work ]
> 
>  > v1="99"
>  > v2="102"
>  > i=2
>  > get(paste("v",i,sep=""))
>  [1] 102
> 
> Barry
> 
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
> 
> 

--
View this message in context:
http://n4.nabble.com/Remove-double-quotation-marks-tp990502p990586.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help at r-project.org mailing list
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.

===================================

P Please consider the environment before printing this e-mail

Cleveland Clinic is ranked one of the top hospitals
in America by U.S.News & World Report (2009).  
Visit us online at http://www.clevelandclinic.org for
a complete listing of our services, staff and
locations.


Confidentiality Note:  This message is intended for use\...{{dropped:13}}




More information about the R-help mailing list