我在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. R:如何找到事件的百分比类别
- 4. 我在R中无法理解的areapl()函数中的某些东西
- 5. 高度宽度以百分比CSS html一些奇怪的东西
- 6. 从棱镜中的演示中如何改变某些东西?
- 7. 如何在R中str_extract百分比?
- 8. 如何使用mod_rewrite为重音字符分配某些东西?
- 9. SQL-如何找到百分比
- 10. 在Perfmon中找到的CPU百分比
- 11. 某些东西压倒一些我的jigoshop小部件
- 12. 替换元素在r中的某个百分比的元素
- 13. 从列表中删除某些东西
- 14. 如何赋值给二维数组中的某些东西?
- 15. Rails:我如何验证某些东西是布尔值?
- 16. 我如何使用REGEX忽略某些东西
- 17. 找到反向百分比
- 18. 如何映射java.util.Optional <Something>到某些东西?在Kotlin
- 19. 如何检测到某些东西将被删除
- 20. C++ STL map.find()找不到我的东西
- 21. 分配百分比与R
- 22. 在表格中递归地找到某些东西的最有效方法?
- 23. 如何从零列表中找到SQL中的百分比?
- 24. 如何添加一些东西到PYTHONPATH?
- 25. R中的假阳性百分比
- 26. R中间隔的繁忙百分比
- 27. 如何找到没有东西时返回其他东西?
- 28. 如何添加一些东西到我的Powershell配置文件?
- 29. python:re如何替换某些图案旁边的所有东西
- 30. 如何有条件地只记录某些类别的东西?
尝试'table'和'prop.table'函数。 –