【发布时间】:2011-12-12 20:53:26
【问题描述】:
我有一个矩阵X1,有 6 列。此X1 矩阵中的第 3 列包含RouteNo。我还有一个向量V1,它是从另一个矩阵中提取的。此向量中很少有值与X1 中的RouteNo 匹配。任务是从矩阵X1 中获取一个子集,其中X1 中的RouteNo 与V1 中的RouteNo 匹配。 V1 包含比矩阵 X1 更多的 RouteNo。
> X1
V1 V2 V3 V4 V5 V6
1 1 2 84072082 1 2000 0
2 2 2 84046006 1 2000 0
3 3 2 84046006 1 2001 0
4 4 2 84046006 1 2002 0
5 5 2 84021002 1 2002 0
6 6 2 84021002 1 2003 0
7 7 2 84021002 1 2003 0
8 8 2 84021002 1 2004 0
9 9 2 84021002 1 2005 0
10 10 2 84021002 1 2005 0
11 11 2 12468015 1 2006 0
12 12 2 12468015 1 2007 0
13 96 2 12468015 2 2000 0
> V1
[1] 84021001 84021002 84021105 84046006 84046007 84046008 84046009 84046011 84046013 84046014
> n2 = subset(X1, subset = X1[,3] %in% V1)
> dim(n2)
[1] 0 6
我尝试使用subset 函数,但没有得到想要的结果。我希望得到如下矩阵
2 2 2 84046006 1 2000 0
3 3 2 84046006 1 2001 0
4 4 2 84046006 1 2002 0
5 5 2 84021002 1 2002 0
6 6 2 84021002 1 2003 0
7 7 2 84021002 1 2003 0
8 8 2 84021002 1 2004 0
9 9 2 84021002 1 2005 0
还有其他方法可以得到结果吗?任何帮助表示赞赏。提前致谢。
【问题讨论】:
-
Joshua Ulrich,你如何格式化 StackOverflow 网站上的 R 代码?
-
缩进四个空格或使用花括号按钮,您可以在帖子上按编辑,自己查看
-
NB_R 您不想对在矩阵中用作列名的向量使用相同的名称。给你的名字起个有用的名字。
-
作为指针,请注意,当您说“矩阵”时,您的真正意思似乎是“数据框”。在 R 中,这是两种不同类型的对象。尽管它们的行为方式相似(并且意图如此),但混淆它们通常会导致错误。