R 按另一列的级别列出一列的子级别
有可能这个问题已经在这个网站的某个地方讨论过了,但我在几次搜索后都找不到。 假设我的dataframe只有2列,可以用下面的代码生成R 按另一列的级别列出一列的子级别,r,reshape2,dcast,R,Reshape2,Dcast,有可能这个问题已经在这个网站的某个地方讨论过了,但我在几次搜索后都找不到。 假设我的dataframe只有2列,可以用下面的代码生成 df=data.frame(brand=c('Audi','BMW','Audi','Toyota','Audi','Toyota'), Model=c('A3','x', 'A4','Corolla','A5','Camry')) 现在我有兴趣了解每个品牌的可用型号。我不想总结或意味着什么。这应该是一个简单的解决方案,但我无法找到它 我能找到的最好的方法是使用
df=data.frame(brand=c('Audi','BMW','Audi','Toyota','Audi','Toyota'),
Model=c('A3','x', 'A4','Corolla','A5','Camry'))
现在我有兴趣了解每个品牌的可用型号。我不想总结或意味着什么。这应该是一个简单的解决方案,但我无法找到它
我能找到的最好的方法是使用dcast
fromreformae2
package。我知道
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
前两列正是我想要的,但我认为我不必要地生成了第三列,然后丢弃了第三列。此外,这也有可能在没有任何附加库的情况下完成
所以我的问题是,有没有更好或更有效的方法来处理这个问题
(我所拥有的实际数据在“.”下的最后一列给出了计数。我不知道为什么我创建的简化示例没有给出计数,而只是重复第二列中的值。如果有必要,我将把它作为一个单独的问题处理!)您只需按
品牌
和型号
订购数据框
。如果有重复的值,则可以使用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