0

这个问题可能已经在这个网站的某个地方讨论过,但经过几次搜索后我找不到它。假设我的数据框只有 2 列,可以使用以下代码生成

df=data.frame(brand=c('Audi','BMW','Audi','Toyota','Audi','Toyota'),
Model=c('A3','x', 'A4','Corolla','A5','Camry'))

现在我有兴趣查看每个品牌的可用型号。我不想总结或意味着什么。这应该是一个简单的解决方案,但我找不到它。

我能找到的最好的方法是dcastreshape2包中使用。我愿意

dcast(df,brand+Model~.)

我明白了

   brand   Model       .
1   Audi      A3      A3
2   Audi      A4      A4
3   Audi      A5      A5
4    BMW       x       x
5 Toyota   Camry   Camry
6 Toyota Corolla Corolla  

前两列正是我想要的,但我认为我不必要地生成第三列,然后再丢弃。此外,有可能无需任何额外的库即可完成此操作。

所以我的问题是,有没有更好或更有效的方法来处理这个问题?

(我的实际数据在“。”下的最后一列中给出了计数。我不知道为什么我创建的简化示例没有给出计数,而是只是重复第二列中的值。我将其作为如果必须,单独的问题!)

4

1 回答 1

1

您可以简单地订购data.framebybrandModel。如果您有重复的值,您可以使用unique()仅获得不同的组合。

unique(df[order(df$brand, df$Model), ])

返回

   brand   Model
1   Audi      A3
3   Audi      A4
5   Audi      A5
2    BMW       x
6 Toyota   Camry
4 Toyota Corolla
于 2018-02-05T13:18:43.903 回答