私は、州ごとのアンケートの質問に対して、「はい」、「いいえ」、「 - 」(無回答)のデータフレームを持っています。カウントは名前付きカラム( " - "、 "N"、 "Y")を持つテーブルとしてデータフレームのセルに保存され、すべてのカラムに対してプログラムでどのように関数を実行できるかを理解する上で問題があります。データフレーム内でテーブルを操作する方法は?
基本的には、各セルの「Y」の割合を取得したいと考えています。
usfarmersmarkets <- read_csv("https://apps.ams.usda.gov/FarmersMarketsExport/ExcelExport.aspx")
usfm <- usfarmersmarkets[c(2, 9:11,21, 22, 24:58)]
testing <- aggregate(usfm[,7:41], list(usfm$State), table)
これは、私がやりたいことの例ですが、$ Creditだけでなく、すべての行を "California"ではなくすべての列に対して示しています。たぶん、リストやデータフレームとして出力を保存することができます。
testing[testing$Group.1 == "California",]$Credit$'05'[2]/
sum(testing[testing$Group.1 == "California",]$Credit$'05') *100
Y
50.06536
The dataframe has this general format
|Group.1 Credit WIC WICCash ...
|Alabama c(105, 39) c(134, 10) c(140, 4) ...
|Alaska c(20, 18) 38 c(30, 8) ...
|Arizona c(28, 69) c(62, 35) c(60, 37) ...
|Arkansas c(69, 33) c(81, 21) c(92, 10) ...
|California 382:383 c(403, 362) c(385, 19, 361) ...
|...
気付いたことがあるように、セルには1〜3つの異なる値が含まれています。セルに1つの値がある場合は、おそらくすべて「いいえ」です。 2つの値がある場合、最初の数字は「いいえ」で、2番目の数字は「はい」です。 3つの値がある場合、最初の数字は「 - 」s、2番目の数字は「いいえ」、3番目の数字は「はい」です。
ご協力いただければ幸いです。
また、私はかなり新しいRですので、ごめんなさい、私の専門用語がオフになっていれば、何でも私を修正することができます。
これは完璧に感謝しています。私はもっとdplyrとtidyrと遊ぶ必要があります。私は明らかにこの問題ですべて間違っていた。再度、感謝します! – xpontimus
私は、あなたがちょうどdplyrとtidyrが緩和するために開発された痛みを経験していたと思っています。パッケージの大きな利点は、データがどこにあるかからどこに行きたいかを次のステップで把握する上で、優れたメンタルモデルを開発するのに役立ちます。私はHadleyの本をここにお勧めしたいと思います:http://r4ds.had.co.nz/transform.htmlその本のR言語に関する他のすばらしいものがたくさんあります。 – Shorpy
ああ素晴らしい。これは偉大な夏の読書、非常に高く評価されます – xpontimus