由一个组逐列串联
栏目: JavaScript · 发布时间: 7年前
内容简介:翻译自:https://stackoverflow.com/questions/34778422/progressive-concatenation-of-a-column-by-a-group
参见英文答案 > Cumulatively paste (concatenate) values grouped by another variable 4个
假设我有这个输入:
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
我想通过组变量ID逐步连接str列的值,如以下输出所示:
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
我尝试使用此代码的ave()函数:
within(table, {
Emp_list <- ave(str, ID, FUN = function(x) paste(x, collapse = ","))
})
但它提供了以下输出,这不是我想要的:
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
当然,我想避免循环,因为我在大型数据库上工作.
使用Reduce()的ave()怎么样? Reduce()函数允许我们在计算结果时累积结果.因此,如果我们使用paste()运行它,我们可以累积粘贴的字符串.
f <- function(x) {
Reduce(function(...) paste(..., sep = ", "), x, accumulate = TRUE)
}
df$str <- with(df, ave(as.character(str), ID, FUN = f)
它给出了更新的数据帧df
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
注意:函数(…)paste(…,sep =“,”)也可以是函数(x,y)paste(x,y,sep =“,”). (感谢Pierre Lafortune)
翻译自:https://stackoverflow.com/questions/34778422/progressive-concatenation-of-a-column-by-a-group
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
我看电商2(双色)
黄若 / 电子工业出版社 / 2016-6 / 39.00元
《我看电商2》是行业畅销书《我看电商》的续集。 《我看电商》自出版以来,连续印刷14 次,受到业界人士和广大读者的高度好评。《我看电商2》承续作者一贯的风格,以行业观察、经验分享为出发点,重点分析了过去一年中国电商界的最新动态与趋势,包括双11点评、京东关闭拍拍、上市公司私有化等。 电子商务是我国近年来发展最快的新兴行业之一,作者作为这个行业的长老级领军人物,善于思考,长于实操。《我看......一起来看看 《我看电商2(双色)》 这本书的介绍吧!