【发布时间】:2020-09-27 00:12:20
【问题描述】:
我已经准备了一个示例data.table:
testTable <- data.table(years = rep(c(rep((2014),3),rep((2015),3), rep((2016),3)), 2),
policy = c(rep("A", 9), rep("B",9)),
destination = rep(c("Paris", "London", "Berlin"), 6))
testTable[c(1,5,8), destination := c("Moskaw", "Milano", "Valencia")]
> testTable
years policy destination
1: 2014 A Moskaw
2: 2014 A London
3: 2014 A Berlin
4: 2015 A Paris
5: 2015 A Milano
6: 2015 A Berlin
7: 2016 A Paris
8: 2016 A Valencia
9: 2016 A Berlin
10: 2014 B Paris
11: 2014 B London
12: 2014 B Berlin
13: 2015 B Paris
14: 2015 B London
15: 2015 B Berlin
16: 2016 B Paris
17: 2016 B London
18: 2016 B Berlin
在这里,我只想保留在数据中可用的所有年份中具有相同 destination 的观察结果。在这个例子中,我只选择了 3 年的政策,但真实数据也可能有 2,3 和 4 年的历史混合在一个 data.table 中。
想要的结果是:
> testTable
years policy destination
3: 2014 A Berlin
6: 2015 A Berlin
9: 2016 A Berlin
10: 2014 B Paris
11: 2014 B London
12: 2014 B Berlin
13: 2015 B Paris
14: 2015 B London
15: 2015 B Berlin
16: 2016 B Paris
17: 2016 B London
18: 2016 B Berlin
Any ides?
我尝试使用dcast(),然后我想过滤那些在policy 之后的所有列中具有相同条目的行,但是我意识到dcast() 自动将我的字符变量destination 转换为数字并聚合我的数据使用长度:
Aggregate function missing, defaulting to 'length'
注意:我的数据将包含数百个观察值。
【问题讨论】:
-
所以您只想保留每年重复的目的地?如果它们看起来更少,则下降?对吗?
-
没错,@Rookie
标签: r data.table character lag dcast