R 按列分组,对字符串出现的次数进行分类和计数
我有一个问题,我自己解决不了;我的桌子看起来像这样:R 按列分组,对字符串出现的次数进行分类和计数,r,grouping,frequency,R,Grouping,Frequency,我有一个问题,我自己解决不了;我的桌子看起来像这样: Type Model ----------------- Car Mercedes Car BMW Plane Airbus Car BMW Car Audi Plane Boeing Plane Airbus Car Mercedes Car BMW Car 6 Mercedes 2 BMW 3 Audi 1 Plane 3 A
Type Model
-----------------
Car Mercedes
Car BMW
Plane Airbus
Car BMW
Car Audi
Plane Boeing
Plane Airbus
Car Mercedes
Car BMW
Car 6
Mercedes 2
BMW 3
Audi 1
Plane 3
Airbus 2
Boeing 1
我想做的是,按类型对我的模型进行分组,并对它们的频率进行聚合和计数,看起来是这样的:
Type Model
-----------------
Car Mercedes
Car BMW
Plane Airbus
Car BMW
Car Audi
Plane Boeing
Plane Airbus
Car Mercedes
Car BMW
Car 6
Mercedes 2
BMW 3
Audi 1
Plane 3
Airbus 2
Boeing 1
如果你能帮助我,那就太好了。到目前为止,我只是找到了一个计算频率的解决方案,但没有同时对我的值进行分类。
表
应该可以做你想做的事情
table(rev(x))
# Type
# Model Car Plane
# Airbus 0 2
# Audi 1 0
# BMW 3 0
# Boeing 0 1
# Mercedes 2 0
您可能还对addmargins
感兴趣:
addmargins(table(rev(x)))
# Type
# Model Car Plane Sum
# Airbus 0 2 2
# Audi 1 0 1
# BMW 3 0 3
# Boeing 0 1 1
# Mercedes 2 0 2
# Sum 6 3 9
addmargins(表(rev(x)),1)
只给出列和,而不是列和行
如果您不喜欢,您可以尝试使用
拆分
或by
或tapply
方法:
with(x, by(Model, Type, function(x) data.frame(addmargins(table(droplevels(x))))))
# Type: Car
# Var1 Freq
# 1 Audi 1
# 2 BMW 3
# 3 Mercedes 2
# 4 Sum 6
# --------------------------------------------------------------------
# Type: Plane
# Var1 Freq
# 1 Airbus 2
# 2 Boeing 1
# 3 Sum 3
table
应该可以满足您的需求
table(rev(x))
# Type
# Model Car Plane
# Airbus 0 2
# Audi 1 0
# BMW 3 0
# Boeing 0 1
# Mercedes 2 0
您可能还对addmargins
感兴趣:
addmargins(table(rev(x)))
# Type
# Model Car Plane Sum
# Airbus 0 2 2
# Audi 1 0 1
# BMW 3 0 3
# Boeing 0 1 1
# Mercedes 2 0 2
# Sum 6 3 9
addmargins(表(rev(x)),1)
只给出列和,而不是列和行
如果您不喜欢,您可以尝试使用
拆分
或by
或tapply
方法:
with(x, by(Model, Type, function(x) data.frame(addmargins(table(droplevels(x))))))
# Type: Car
# Var1 Freq
# 1 Audi 1
# 2 BMW 3
# 3 Mercedes 2
# 4 Sum 6
# --------------------------------------------------------------------
# Type: Plane
# Var1 Freq
# 1 Airbus 2
# 2 Boeing 1
# 3 Sum 3
table
应该可以满足您的需求
table(rev(x))
# Type
# Model Car Plane
# Airbus 0 2
# Audi 1 0
# BMW 3 0
# Boeing 0 1
# Mercedes 2 0
您可能还对addmargins
感兴趣:
addmargins(table(rev(x)))
# Type
# Model Car Plane Sum
# Airbus 0 2 2
# Audi 1 0 1
# BMW 3 0 3
# Boeing 0 1 1
# Mercedes 2 0 2
# Sum 6 3 9
addmargins(表(rev(x)),1)
只给出列和,而不是列和行
如果您不喜欢,您可以尝试使用
拆分
或by
或tapply
方法:
with(x, by(Model, Type, function(x) data.frame(addmargins(table(droplevels(x))))))
# Type: Car
# Var1 Freq
# 1 Audi 1
# 2 BMW 3
# 3 Mercedes 2
# 4 Sum 6
# --------------------------------------------------------------------
# Type: Plane
# Var1 Freq
# 1 Airbus 2
# 2 Boeing 1
# 3 Sum 3
table
应该可以满足您的需求
table(rev(x))
# Type
# Model Car Plane
# Airbus 0 2
# Audi 1 0
# BMW 3 0
# Boeing 0 1
# Mercedes 2 0
您可能还对addmargins
感兴趣:
addmargins(table(rev(x)))
# Type
# Model Car Plane Sum
# Airbus 0 2 2
# Audi 1 0 1
# BMW 3 0 3
# Boeing 0 1 1
# Mercedes 2 0 2
# Sum 6 3 9
addmargins(表(rev(x)),1)
只给出列和,而不是列和行
如果您不喜欢,您可以尝试使用
拆分
或by
或tapply
方法:
with(x, by(Model, Type, function(x) data.frame(addmargins(table(droplevels(x))))))
# Type: Car
# Var1 Freq
# 1 Audi 1
# 2 BMW 3
# 3 Mercedes 2
# 4 Sum 6
# --------------------------------------------------------------------
# Type: Plane
# Var1 Freq
# 1 Airbus 2
# 2 Boeing 1
# 3 Sum 3
谢谢你的回答!我尝试了这个解决方案,但是我仍然需要将模型分配给类型。因此,我需要类似于标题行的内容,其中包含类别及其计数,在该行之后,跟随具有特定模型的行。查看哪个模型属于哪个类型仍然很重要@Docendiscimus:你的回答也有同样的问题谢谢你的帮助!第二个答案是,我一直在寻找汉克斯的答案!我尝试了这个解决方案,但是我仍然需要将模型分配给类型。因此,我需要类似于标题行的内容,其中包含类别及其计数,在该行之后,跟随具有特定模型的行。查看哪个模型属于哪个类型仍然很重要@Docendiscimus:你的回答也有同样的问题谢谢你的帮助!第二个答案是,我一直在寻找汉克斯的答案!我尝试了这个解决方案,但是我仍然需要将模型分配给类型。因此,我需要类似于标题行的内容,其中包含类别及其计数,在该行之后,跟随具有特定模型的行。查看哪个模型属于哪个类型仍然很重要@Docendiscimus:你的回答也有同样的问题谢谢你的帮助!第二个答案是,我一直在寻找汉克斯的答案!我尝试了这个解决方案,但是我仍然需要将模型分配给类型。因此,我需要类似于标题行的内容,其中包含类别及其计数,在该行之后,跟随具有特定模型的行。查看哪个模型属于哪个类型仍然很重要@Docendiscimus:你的回答也有同样的问题谢谢你的帮助!第二个答案是,我在寻找什么