1

別の質問があります。R の初心者に対する皆さんの助けと忍耐に感謝します!

列に文字列が何回出現するかをカウントするにはどうすればよいですか? 例:

MYdata <- data.frame(fruits = c("apples", "pears", "unknown_f", "unknown_f", "unknown_f"), 
                     veggies = c("beans", "carrots", "carrots", "unknown_v", "unknown_v"), 
                     sales = rnorm(5, 10000, 2500))

問題は、実際のデータ セットに数千行と数百の未知の果物と未知の野菜が含まれていることです。「table()」と「levels」をいじってみましたが、あまり成功しませんでした。それよりも複雑だと思います。それぞれの固有の果物/野菜の名前と、それがその列に何回出現するかをリストする出力テーブルがあると便利です。正しい方向へのヒントは大歓迎です。

ありがとう、

マーカス

4

3 に答える 3

10

あなたの質問を理解できれば、関数は問題table()なく動作するはずです。方法は次のとおりです。

table(MYdata$fruits)

   apples     pears unknown_f 
        1         1         3 
table(MYdata$veggies)

    beans   carrots unknown_v 
        1         2         2 

またはtable内部で使用lapply

lapply(MYdata[1:2], table)
$fruits

   apples     pears unknown_f 
        1         1         3 

$veggies

    beans   carrots unknown_v 
        1         2         2 
于 2012-06-11T06:24:16.840 に答える
3

以下は、使いやすいか、目的により適している可能性のあるカウントのデータフレームを提供します。

tabs=lapply(MYdata[-3], table)
out=data.frame(item=names(unlist(tabs)),count=unlist(tabs)[],
               stringsAsFactors=FALSE)
rownames(out)=c()

print(out)

               item count
1     fruits.apples     1
2      fruits.pears     1
3  fruits.unknown_f     3
4     veggies.beans     1
5   veggies.carrots     2
6 veggies.unknown_v     2
于 2012-06-11T16:48:37.247 に答える