私は以下のようなデータフレームを持っています。文字列中の文字をrでグループ単位で数える方法は?
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")
ありがとうございます。
ありがとうございます。しかし、それは "strsplit(df $ TYPE、" ")のエラー:文字以外の引数" ... –
が表示されます。 'class(df $ TYPE)'をチェックしてください。あなたは誤って変数を因子としてコード化しました。変数をモデリングのカテゴリ変数として使用しない場合は、 'stringsAsFactors = FALSE'を使用する必要があります。 –
@TerenceTien 'as.character'を使って、' strsplit(as.character(df $ Type)、 "") ' –