r - 选择唯一的非重复值

标签 r select unique

我有一些 2004-2007 年的面板数据,我想根据唯一值进行选择。更准确地说,我试图找出整个期间各个商店的进入和退出。数据样本:

 store year    rev space  market
     1 2004 110000  1095     136
     1 2005 110000  1095     136
     1 2006 110000  1095     136
     1 2007 120000  1095     136
     2 2004  35000   800     136
     3 2004  45000  1000     136
     3 2005  45000  1000     136
     3 2006  45000  1000     136
     3 2007  45000  1000     136
     4 2005  17500   320     136
     4 2006  17500   320     136
     4 2007  17500   320     136
     5 2005  45000   580     191
     5 2006  45000   580     191
     5 2007  45000   580     191
     6 2004   7000   345     191
     6 2005   7000   345     191
     6 2006   7000   345     191
     7 2007  10000   500     191

例如,我想了解整个期间有多少商店退出市场,应该如下所示:

 store year   rev space  market
     2 2004 35000   800     136
     6 2006  7000   345     191

以及进入市场的商店数量,这意味着:

 store year    rev space  market
     4 2005  17500   320     136
     5 2005  45000   580     191
     7 2007  10000   500     191

更新: 我没有包括它也应该承担现有商店,例如:

 store year    rev  space  market
     1 2004 110000   1095     136
     1 2005 110000   1095     136
     1 2006 110000   1095     136
     1 2007 120000   1095     136     
     3 2004  45000   1000     136
     3 2005  45000   1000     136
     3 2006  45000   1000     136
     3 2007  45000   1000     136

自从我还是 R 的新手以来,我一直在努力做到正确,即使是在逐年的基础上。有什么建议么?

最佳答案

使用 data.table 包,如果您的 data.frame 被称为 df:

dt = data.table(df)
exit = dt[,list(ExitYear = max(year)),by=store]
exit = exit[ExitYear != 2007] #Or whatever the "current year" is for this table

enter = dt[,list(EntryYear = min(year)),by=store]
enter = enter[EntryYear != 2003]

更新

要获取所有列而不仅仅是年份和存储,您可以这样做:

exit = dt[,.SD[year == max(year)], by=store]
exit[year != 2007]
   store year   rev space market
1:     2 2004 35000   800    136
2:     6 2006  7000   345    191

关于r - 选择唯一的非重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287923/

相关文章:

MySQL SELECT INTO <variable> 返回 null 但查询返回一个值

javascript - lodash 基于属性的唯一性

sql - 名字和姓氏在 SQL 中必须是唯一的

javascript - 单击 Shiny 的操作按钮后,将光标聚焦在 textArea 中

r - 如何更改效果包图中的字体类型

r - Shiny 的传单添加大量分离的多段线

r - 使用 R 在 netCDF 文件中扩展维度

mysql - 使用 mysql 从某一行开始选择

javascript - 在select中设置选中项

vba - 尝试从表中获取唯一值时出现“Assignment to Constant”错误