Sorry I should have included the r code for the dataframes for ease of
test:
input <- rbind(data.frame(item="item 1.1: earnings <sep> item 1.2:
w2
<sep>", loc="shelf 1"),
data.frame(item="item 1.3: deductions <sep>",
loc="drawer 1"),
data.frame(item="item 1.1: earnings <sep>",
loc="shelf 2"))
lst <- rbind(data.frame(item="item 1.1",
cat="A"),data.frame(item="item
1.2", cat="B"),data.frame(item="item 1.3",
cat="C"))
want to get result like:
> result
item loc cat
1 item 1.1: earnings <sep> item 1.2: w2 <sep> shelf 1 AB
2 item 1.3: deductions drawer 1 C
3 item 1.1: earnings shelf 2 A
Thanks,
Richard
From: Tan, Richard
Sent: Wednesday, January 05, 2011 5:55 PM
To: 'r-help@r-project.org'
Subject: categorize a character column
Hi, I know I can do this with a for loop with strsplit and grep, but is
there more efficient way?
Given a data dataframe (input) and a category column (lst),
> input
item loc
1 item 1.1: earnings <sep> item 1.2: w2 <sep> shelf 1
2 item 1.3: deductions drawer 1
3 item 1.1: earnings shelf 2
> lst
item cat
1 item 1.1 A
2 item 1.2 B
3 item 1.3 C
how to get a result frame like
> result
item loc cat
1 item 1.1: earnings <sep> item 1.2: w2 <sep> shelf 1 AB
2 item 1.3: deductions drawer 1 C
3 item 1.1: earnings shelf 2 A
Thanks,
Richard
[[alternative HTML version deleted]]