【发布时间】:2015-10-11 18:48:58
【问题描述】:
我需要对我的数据进行“拆分”,以保留我之前的订单,为此我使用了here 提供的 data.table 解决方案。我根据两列“拆分”我的数据。请参阅下面的示例:
df = data.frame(product = c("b", "a", "b", "a"),
value = c(sample(1:10,4)),
year = c(2001, 2001, 2000, 2000))
require(data.table)
dt <- data.table(df)
dt[, grp := .GRP, by = list(product,year)]
setkey(dt, grp)
o2 <- dt[, list(list(.SD)), by = grp]$V1
此代码返回列表,而不按字母或数字重新排序。但是,我想将项目名称更改为产品和年份的组合。
> o2
[[1]]
product value year
1: b 3 2001
[[2]]
product value year
1: a 8 2001
[[3]]
product value year
1: b 4 2000
[[4]]
product value year
1: a 7 2000
预期的结果应该是这样的:
> o2
$b.2001
product value year
1: b 3 2001
$a.2001
product value year
1: a 8 2001
$b.2000
product value year
1: b 4 2000
$a.2000
product value year
1: a 7 2000
另一种拆分技术也可以,但我需要保持我之前的顺序。感谢您的想法
【问题讨论】:
标签: r split data.table