Suppose I have this input:
ID date_1 date_2 str 1 1 2010-07-04 2008-01-20 A 2 2 2015-07-01 2011-08-31 C 3 3 2015-03-06 2013-01-18 D 4 4 2013-01-10 2011-08-30 D 5 5 2014-06-04 2011-09-18 B 6 5 2014-06-04 2011-09-18 B 7 6 2012-11-22 2011-09-28 C 8 7 2014-06-17 2013-08-04 A 10 7 2014-06-17 2013-08-04 B 11 7 2014-06-17 2013-08-04 B
I would like to gradually concatenate the values โโof the str column using the group ID variable, as shown in the following output:
ID date_1 date_2 str 1 1 2010-07-04 2008-01-20 A 2 2 2015-07-01 2011-08-31 C 3 3 2015-03-06 2013-01-18 D 4 4 2013-01-10 2011-08-30 D 5 5 2014-06-04 2011-09-18 B 6 5 2014-06-04 2011-09-18 B,B 7 6 2012-11-22 2011-09-28 C 8 7 2014-06-17 2013-08-04 A 10 7 2014-06-17 2013-08-04 A,B 11 7 2014-06-17 2013-08-04 A,B,B
I tried using the ave() function with this code:
within(table, { Emp_list <- ave(str, ID, FUN = function(x) paste(x, collapse = ",")) })
but it gives the following result, which is not quite what I want:
ID date_1 date_2 str 1 1 2010-07-04 2008-01-20 A 2 2 2015-07-01 2011-08-31 C 3 3 2015-03-06 2013-01-18 D 4 4 2013-01-10 2011-08-30 D 5 5 2014-06-04 2011-09-18 B,B 6 5 2014-06-04 2011-09-18 B,B 7 6 2012-11-22 2011-09-28 C 8 7 2014-06-17 2013-08-04 A,B,B 10 7 2014-06-17 2013-08-04 A,B,B 11 7 2014-06-17 2013-08-04 A,B,B
Of course, I would like to avoid loops as I am working on a large database.
string r aggregation
Liam S.
source share