私はRで本当に新しいです。これは本当に基本的な質問ですが、私は、2列のデータセットに男性と女性で構成された学生がいるとしましょう。 1つの列には生徒が、もう1つの列には性別があります。それぞれの割合はどのようにして調べるのですか?Rの中で何かのパーセンテージを見つけるには?
答えて
これはおそらくこれを行う最も効率的な方法ではありませんが、これは問題を解決する1つの方法です。
まず、data.frameを作成する必要があります。どのように人工的なものです:
が学生< - data.frame(学生= C( "カーラ"、 "ジョシュ"、 "アマンダ"、 "ガブリエル"、 "シャノン"、 "ティファニー")、性別= C( "女性"、 "男性"、 "女性"、 "男性"、 "女性"、 "女性")
ビュー(学生)
は、その後、私は私の割合を与える小道具テーブルを使用しますテーブルや比率を行列の中で計算し、私はdata.framesが好きなのでdata.frameに変換します.100%を掛けてプロペラテーブルの比率をパーセンテージにする必要があります。
タブ譜< - 私は私のデータフレームテーブルのタブ譜を呼び出すことにしましたas.data.frame.matrix(prop.table(表(学生))* 100) タブ譜
。 「Amanda」は女性列の16 +(2/3)%です。基本的には、彼女が女性で、男性は0なので、私のdata.frameには6人の生徒がいるので、(1/6)* 100は彼女の16.667パーセントになります。
ここで何パーセントの女性と男性がいますか? 2つの方法:1)同時に、apply関数で各セットの数を取得するか、各セットの数を一度に1つずつ取得します。ここでsum関数を使用する必要があります。
適用(タブラチュア、2、FUN =和)
女性男性
66.66667 33。33333
%で表されるとします。
ここで2 tablatureは、合計関数を列全体に適用する割合テーブルのデータフレームです(列の場合は2、行の場合は1)。
少量のデータを目の当たりにすれば、data.frameの学生に2/6 = 33.3333%の男性が、data.frameに4/6 = 66.66667%の女性がいることがわかります計算を正しく行った。
また、
合計(タブ譜$女性)
1 66.66667
合計(タブ譜$男性)
1 33.33333
バープロットを作成できます。私が書式を設定したときに、それを行列として参照してバープロットを取得する必要があります。
ここから、性別バープロットを積み上げて視覚的に比較できます。
barplot(as.matrix(タブ譜)、xlab = "性別"、メイン= "学生の男女のBarplot比較"、ylab = "学生グループの割合")
それは積み重ねだからRは各生徒に16.6667%の箱を作った。
正に言うと、apply関数の出力をプロットするだけの方がいいでしょう。もちろん、変数に保存することもできます。しかしnaahhh ...
barplotは((タブ譜、2、FUN =合計)、COL = C)、( "緑" "青"、xlabは= "性別"、総学生のylab =」割合を適用します"、main ="生徒の中で性別の割合を示す棒グラフ "、cex.main = 1)
今はスタックしません。
'prop.table'には、グループ内の比率を計算するための' margin = 'の引数があります。例: 'prop.table(table(students)、2)'。また、コードブロックの代わりにあなたの答えに "引用符"を使用しています。あなたが望むボタンは "{}"のように見えるか、コードの各行の前に4つのスペースを入れてください。 – thelatemail
私はそれを知らなかった。一般的に、私はそれが動作すると愚かではないと信じていますが、正しい答えに到達する方法があることを教えてくれてありがとう。 – xyz123
テーブル()関数を使用すると、生徒の中の男性と女性の量を示す表を作成することができます。この表を生徒の総数に分けます(長さ) 関数)。
proportions <- table(your_data_frame$gender_columnn)/length(your_data_frame$gender_column)
percentages <- proportions*100
data.table
を使用して別の方法:
students <- data.frame(names = c("Bill", "Stacey", "Fred", "Jane", "Sarah"),
gender = c("M", "F", "M", "F", "F"),
stringsAsFactors = FALSE)
library(data.table)
setDT(students)[ , 100 * .N/nrow(students), by = gender ]
# gender V1
# 1: M 40
# 2: F 60
またはdplyr
:
library(dplyr)
students %>%
group_by(gender) %>%
summarise(percent = 100 * n()/nrow(students))
# A tibble: 2 × 2
# gender percent
# <chr> <dbl>
# 1 F 60
# 2 M 40
最後にあなたは自分のコードのようなものでなければなりません100
で結果を掛けこれらはどちらも、このような操作のための一般的なパッケージですが、既に指摘されている場合は、好きな場合はベースRに固執することもできます。
はすでにこの問題にはいくつかの良い答えがありますが、元の提出者は、Rに新しいものを認めているように、私は非常に長い形式の答えを提供したかったです。以下の答えは必要最小限のステップ数以上を要し、パイプのようなヘルパーは使用しません。
この方法で回答を提供すると、元の送信者は各ステップで何が起こっているのかを理解するのに役立ちます。
# Load the dplyr library
library("dplyr")
# Create an example data frame
students <-
data.frame(
names = c("Bill", "Stacey", "Fred", "Jane", "Sarah"),
gender = c("M", "F", "M", "F", "F"),
stringsAsFactors = FALSE
)
# Count the total number of students.
total_students <- nrow(students)
# Use dplyr filter to obtain just Female students
all_female_students <- dplyr::filter(students, gender %in% "F")
# Count total number of female students
total_female <- nrow(all_female_students)
# Repeat to find total number of male students
all_male_students <- dplyr::filter(students, gender %in% "M")
total_male <- nrow(all_male_students)
# Divide total female students by total students
# and multiply result by 100 to obtain a percentage
percent_female <- (total_female/total_students) * 100
# Repeat for males
percent_male <- (total_male/total_students) * 100
> percent_female
[1] 60
> percent_male
[1] 40
- 1. 2つの同じ円のパーセンテージでスーパーインポーズレベルを見つける
- 2. パーセンテージでスレッドの作業を見つける方法は?
- 3. Postgresの平均からパーセンテージを見つける問題
- 4. Rの2つの整数の中で最も長いマッチを見つける
- 5. 見つけ、R
- 6. ジオポイントのXパーセンテージをカバーするアルゴリズムを見つけるアルゴリズム
- 7. リスト内でランクとパーセンテージのランクを見つけよう
- 8. 値の正確なパーセンテージを見つける方法
- 9. Rテキスト内の値を見つける
- 10. R:タイムゾーンポリゴン内のポイントを見つける
- 11. データでエラーを見つけるR
- 12. すぐにデータを見つけるR
- 13. Regexが文字列の真ん中で何かを見つける
- 14. Rのカラムの平均を見つけるには
- 15. rのベクトルの文字列を見つけるには?
- 16. RはInf/-Inf値を見つける方法ですか?
- 17. 異なるマシンの数値の中央値を見つけるのに最も速いアルゴリズムは何ですか?
- 18. NSLogを見つけるためのRegExではなく、{\ r。* NSLog
- 19. Rでは、各サブテストの相関行列を見つける
- 20. Pythonの中央タイムスタンプを見つける
- 21. R:2つのリストで同じ文字列を見つける
- 22. リサイクルビューで表示されている各アイテムのパーセンテージを見つける方法
- 23. Rのデータから既知のパターンのエラーを見つける?
- 24. grconvertXを使ってRのANYプロットで真ん中のxを見つけるには?
- 25. Javaは2つの整数間の中点を見つける
- 26. Rテーブルの名前とスクレイプを見つけるR
- 27. Rの逆関数を見つけるR
- 28. Rで範囲を見つけて中央値に置き換えます
- 29. SublimeREPL Rを見つけることができませんR
- 30. WP7はピボットアイテムのヘッダの中にコントロールを見つける
は、 'table'と' prop.table'を試してみてください。 –