[R] Splitting the Elements of character vector

2013-04-16 Thread Katherine Gobin
Dear R forum

I have a data.frame 

df = data.frame(currency_type = c(EURO_o_n, EURO_o_n, EURO_1w, EURO_1w, 
USD_o_n, USD_o_n, USD_1w, USD_1w), rates = c(0.47, 0.475, 0.461, 0.464, 
1.21, 1.19, 1.41, 1.43))

  currency_type rates
1  EURO_o_n   0.470
2  EURO_o_n   0.475
3   EURO_1w   0.461
4   EURO_1w   0.464
5   USD_o_n    1.210
6   USD_o_n    1.190
7    USD_1w    1.410
8    USD_1w    1.430


I need to split the values appearing under currency_type to obtain following 
data.frame in the original order

currency tenor   rates
EURO o_n     0.470
EURO o_n     0.475
EURO 1w  0.461 
EURO 1w  0.464
USD   o_n 1.210
USD   o_n 1.190
USD           1w      1.410
USD           1w      1.430    

Basically I need to split the currency name and tenors.

I tried

strsplit(df$currency_type, _)
Error in strsplit(df$currency_type, _) : non-character argument

Kindly guide

Katherine

[[alternative HTML version deleted]]

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


Re: [R] Splitting the Elements of character vector

2013-04-16 Thread Gabor Grothendieck
On Tue, Apr 16, 2013 at 8:38 AM, Katherine Gobin
katherine_go...@yahoo.com wrote:
 Dear R forum

 I have a data.frame

 df = data.frame(currency_type = c(EURO_o_n, EURO_o_n, EURO_1w, 
 EURO_1w, USD_o_n, USD_o_n, USD_1w, USD_1w), rates = c(0.47, 0.475, 
 0.461, 0.464, 1.21, 1.19, 1.41, 1.43))

   currency_type rates
 1  EURO_o_n   0.470
 2  EURO_o_n   0.475
 3   EURO_1w   0.461
 4   EURO_1w   0.464
 5   USD_o_n1.210
 6   USD_o_n1.190
 7USD_1w1.410
 8USD_1w1.430


 I need to split the values appearing under currency_type to obtain following 
 data.frame in the original order

 currency tenor   rates
 EURO o_n 0.470
 EURO o_n 0.475
 EURO 1w  0.461
 EURO 1w  0.464
 USD   o_n 1.210
 USD   o_n 1.190
 USD   1w  1.410
 USD   1w  1.430

 Basically I need to split the currency name and tenors.


Try sub:

with(df, data.frame(
   currency = sub(_.*, , currency_type),
   tenor = sub(^[^_]*_, , currency_type),
   rates)
)

--
Statistics  Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

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


Re: [R] Splitting the Elements of character vector

2013-04-16 Thread arun
Hi,
Try:
df = data.frame(currency_type = c(EURO_o_n, EURO_o_n, EURO_1w, EURO_1w, 
USD_o_n, USD_o_n, USD_1w, USD_1w), rates = c(0.47, 0.475, 0.461, 0.464, 
1.21, 1.19, 1.41, 1.43),stringsAsFactors=FALSE)
 df$currency-unlist(lapply(str_split(df[,1],_),`[`,1))
 df$tenor-unlist(lapply(str_split(df[,1],_),function(x) 
{paste(x[-1],collapse=_)}))
 df[,c(3,4,2)]
 # currency tenor rates
#1 EURO   o_n 0.470
#2 EURO   o_n 0.475
#3 EURO    1w 0.461
#4 EURO    1w 0.464
#5  USD   o_n 1.210
#6  USD   o_n 1.190
#7  USD    1w 1.410
#8  USD    1w 1.430
A.K.



- Original Message -
From: Katherine Gobin katherine_go...@yahoo.com
To: r-help@r-project.org
Cc: 
Sent: Tuesday, April 16, 2013 8:38 AM
Subject: [R] Splitting the Elements of character vector

Dear R forum

I have a data.frame 

df = data.frame(currency_type = c(EURO_o_n, EURO_o_n, EURO_1w, EURO_1w, 
USD_o_n, USD_o_n, USD_1w, USD_1w), rates = c(0.47, 0.475, 0.461, 0.464, 
1.21, 1.19, 1.41, 1.43))

  currency_type rates
1  EURO_o_n   0.470
2  EURO_o_n   0.475
3   EURO_1w   0.461
4   EURO_1w   0.464
5   USD_o_n    1.210
6   USD_o_n    1.190
7    USD_1w    1.410
8    USD_1w    1.430


I need to split the values appearing under currency_type to obtain following 
data.frame in the original order

currency tenor   rates
EURO o_n 0.470
EURO o_n 0.475
EURO 1w  0.461 
EURO 1w  0.464
USD   o_n 1.210
USD   o_n 1.190
USD           1w      1.410
USD           1w      1.430    

Basically I need to split the currency name and tenors.

I tried

strsplit(df$currency_type, _)
Error in strsplit(df$currency_type, _) : non-character argument

Kindly guide

Katherine

    [[alternative HTML version deleted]]


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


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


Re: [R] Splitting the Elements of character vector

2013-04-16 Thread arun
HI,
You can also do this by:
library(stringr)
df2-data.frame(currency=word(str_replace(df[,1],_, ),1), 
temor=word(str_replace(df[,1],_, ),2), 
rates=df$rates,stringsAsFactors=FALSE)
 df2
#  currency temor rates
#1 EURO   o_n 0.470
#2 EURO   o_n 0.475
#3 EURO    1w 0.461
#4 EURO    1w 0.464
#5  USD   o_n 1.210
#6  USD   o_n 1.190
#7  USD    1w 1.410
#8  USD    1w 1.430
A.K.







- Original Message -
From: arun smartpink...@yahoo.com
To: Katherine Gobin katherine_go...@yahoo.com
Cc: R help r-help@r-project.org
Sent: Tuesday, April 16, 2013 9:00 AM
Subject: Re: [R] Splitting the Elements of character vector

Hi,
Try:
df = data.frame(currency_type = c(EURO_o_n, EURO_o_n, EURO_1w, EURO_1w, 
USD_o_n, USD_o_n, USD_1w, USD_1w), rates = c(0.47, 0.475, 0.461, 0.464, 
1.21, 1.19, 1.41, 1.43),stringsAsFactors=FALSE)
 df$currency-unlist(lapply(str_split(df[,1],_),`[`,1))
 df$tenor-unlist(lapply(str_split(df[,1],_),function(x) 
{paste(x[-1],collapse=_)}))
 df[,c(3,4,2)]
 # currency tenor rates
#1 EURO   o_n 0.470
#2 EURO   o_n 0.475
#3 EURO    1w 0.461
#4 EURO    1w 0.464
#5  USD   o_n 1.210
#6  USD   o_n 1.190
#7  USD    1w 1.410
#8  USD    1w 1.430
A.K.



- Original Message -
From: Katherine Gobin katherine_go...@yahoo.com
To: r-help@r-project.org
Cc: 
Sent: Tuesday, April 16, 2013 8:38 AM
Subject: [R] Splitting the Elements of character vector

Dear R forum

I have a data.frame 

df = data.frame(currency_type = c(EURO_o_n, EURO_o_n, EURO_1w, EURO_1w, 
USD_o_n, USD_o_n, USD_1w, USD_1w), rates = c(0.47, 0.475, 0.461, 0.464, 
1.21, 1.19, 1.41, 1.43))

  currency_type rates
1  EURO_o_n   0.470
2  EURO_o_n   0.475
3   EURO_1w   0.461
4   EURO_1w   0.464
5   USD_o_n    1.210
6   USD_o_n    1.190
7    USD_1w    1.410
8    USD_1w    1.430


I need to split the values appearing under currency_type to obtain following 
data.frame in the original order

currency tenor   rates
EURO o_n 0.470
EURO o_n 0.475
EURO 1w  0.461 
EURO 1w  0.464
USD   o_n 1.210
USD   o_n 1.190
USD           1w      1.410
USD           1w      1.430    

Basically I need to split the currency name and tenors.

I tried

strsplit(df$currency_type, _)
Error in strsplit(df$currency_type, _) : non-character argument

Kindly guide

Katherine

    [[alternative HTML version deleted]]


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

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