我在R裏真的很新,這可能是一個非常基本的問題,但我們假設我有一個數據集,其中有兩列,其中有由男性和女性組成的學生。一列有學生,另一列是性別。我如何找到每個的百分比?我如何找到R中的某些東西的百分比?
回答
這可能不是最有效的方法,但這是解決問題的一種方法。
首先你必須創建一個data.frame。如何是一個人造的:
學生< - data.frame(學生= C( 「卡拉」, 「喬希」, 「阿曼達」, 「加布裏埃爾」, 「香」, 「蒂凡尼」),性別= C( 「女」, 「男」, 「女」, 「男」, 「女」, 「女」)
視圖(學生)
然後我用道具表,它給了我一個比例表或矩陣中列的比率,並且我將它強制爲一個data.frame,因爲我喜歡data.frames,而且我必須乘以100來從prop表中轉換比率,因爲它們將以百分比形式表示。
指法< - as.data.frame.matrix(prop.table(表(學生))* 100) 指法
我決定把我的數據幀表指法。 所以它說「阿曼達」是女性專欄的16 +(2/3)%。基本上這意味着她是女性,因此男性爲0,而我的數據框架有6名學生,所以(1/6)* 100使她成爲該組的16.667%。
現在有多少比例的女性和男性? 兩種方法:1)用apply函數同時獲取每個集合的數量,或者一次獲取每個集合的數量,我們現在應該使用sum函數。
申請(指法,2,FUN =總和)
女性男性
66.66667 33。33333
試想一下,以百分比形式。
在哪裏2指法是我跨各列施加的總和函數的比例表數據幀(2列或1行)。
所以,如果你只是眼球的數據量小,可以看到有2個/ 6 = 33.3333%的男性在data.frame學生和4/6 = 66.66667%的女性在data.frame所以我正確計算。
另外,
總和(指法$女)
1 66.66667
總和(指法$男)
1 33.33333
而且你可以做一個barplot。當我格式化它時,你必須將它作爲一個矩陣來獲得一個barplot。
,從這裏就可以使性別barplot的層疊的視覺對比。
barplot(as.matrix(古譜),xlab = 「性別」,主要= 「性別在學生的Barplot比較」,ylab = 「學生組的百分比」)
它的堆疊,因爲R給每個學生一盒16.6667%。
說實話它看起來更好,如果你只是繪製應用函數的輸出。當然你可以把它保存到一個變量中。但naahhh ...
barplot(apply(tablature,2,FUN = sum),col = c(「green」,「blue」),xlab =「Gender」,ylab =「學生總數的百分比「,main =」Barplot顯示在學生中代表性別的百分比「,cex.main = 1)
現在它不疊加。
'prop.table'具有用於'餘量='到組內計算的比例的參數。例如:'prop.table(table(students),2)'。此外,您在答案中使用「引號」而不是代碼塊 - 您想要的按鈕看起來像「{}' - 或者在每行代碼前面放置4個空格。 – thelatemail
我不知道。一般來說,我相信這不是愚蠢的,但是謝謝你告訴我,有一種方法可以讓正確的答案在一起挖掘更少的功能。 – xyz123
您可以使用table()函數生成一個表格,告訴您在學生中有多少男性和女性。然後,將此表格分配給學生總數(可以通過使用長度( )功能)。最後,你只需乘以100
結果您的代碼應該是這樣的:
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
這些都是像這些操作流行的軟件包,但一樣已經指出,如果你願意,你也可以堅持使用base 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. 如何從mongo中的數組中找到某些東西
- 2. 如何找到符合某些標準的列表中的數字百分比?
- 3. 我想找到百分比
- 4. 如何從批處理文件中的文件中找到某些東西
- 5. iOS將ID分配給某些東西?
- 6. R:如何找到事件的百分比類別
- 7. 我在R中無法理解的areapl()函數中的某些東西
- 8. 百分比找到
- 9. 如何從表中選擇某些東西等於變量的東西
- 10. 在Lucene.NET中找不到一些東西
- 11. 如果找不到任何東西,我該如何加入別的東西? MySQL
- 12. R:創建描繪ggplot2中百分比的百分比的barplot
- 13. 高度寬度以百分比CSS html一些奇怪的東西
- 14. 從棱鏡中的演示中如何改變某些東西?
- 15. 我在javascript中查詢某些東西后,如何分配回調函數?
- 16. 如何在R中str_extract百分比?
- 17. 如何使用mod_rewrite爲重音字符分配某些東西?
- 18. SQL-如何找到百分比
- 19. 某些東西壓倒一些我的jigoshop小部件
- 20. 在Perfmon中找到的CPU百分比
- 21. 如何在自己的對象中訪問某些東西?
- 22. 如何賦值給二維數組中的某些東西?
- 23. 如何在ggplot的背景中繪製某些東西?
- 24. 如何通過Delphi中的WebBrowser組件繪製某些東西
- 25. 從列表中刪除某些東西
- 26. 在HTML C中搜索某些東西#
- 27. 替換元素在r中的某個百分比的元素
- 28. Rails:我如何驗證某些東西是布爾值?
- 29. 我如何使用REGEX忽略某些東西
- 30. 找到反向百分比
嘗試'table'和'prop.table'函數。 –