gpt4 book ai didi

r - 如何在r中按组计算字符串中的字符?

转载 作者:行者123 更新时间:2023-12-04 11:44:10 25 4
gpt4 key购买 nike

我有一个如下所示的数据框。

ID<-c('001','002','003','004','005')
TYPE<-c('ABB','BCC','AAA','BBA','BCC')
Group<-c('1','2','2','2','1')
df<-data.frame(ID,TYPE,Group)
df

ID TYPE Group
1 001 ABB 1
2 002 BCC 2
3 003 AAA 2
4 004 BBA 2
5 005 BCC 1

我想得到一个表格来了解每个组中每个字符的频率及其百分比。
      Group 
1 2
A 1 4
B 3 3
C 2 2
Total 6 9

和它的百分比
       Group 
1 2
A 0.17 0.44
B 0.50 0.33
C 0.33 0.22
Total% 1.00 1.00

我尝试以下操作,但它显示错误。
str_count(df$TYPE[(df$Group==1], pattern = "A")
str_count(df$TYPE[(df$Group==2], pattern = "A")
str_count(df$TYPE[(df$Group==1], pattern = "B")
str_count(df$TYPE[(df$Group==2], pattern = "B")
str_count(df$TYPE[(df$Group==1], pattern = "C")
str_count(df$TYPE[(df$Group==2], pattern = "C")

提前致谢。

最佳答案

怎么样在基地和stacktable :

tbl <- table(stack(`names<-`(strsplit(df$TYPE, ""), df$Group)))
# ind
#values 1 2
# A 1 4
# B 3 3
# C 2 2

然后我们可以添加百分比:
round(prop.table(tbl, 2), 2)
# ind
#values 1 2
# A 0.17 0.44
# B 0.50 0.33
# C 0.33 0.22

如果你想要总和:
addmargins(tbl, 1)

关于r - 如何在r中按组计算字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38044721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com