Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向dplyr汇总表添加因子_R_Dplyr - Fatal编程技术网

向dplyr汇总表添加因子

向dplyr汇总表添加因子,r,dplyr,R,Dplyr,我搜索了这个主题,找到了部分解决方案,但仍然停留在一个方面。我正试图从dplyr操作一个管道摘要表,以便我可以用ggplot绘制出来。数据来自调查研究。我想按种族报告一个反应变量(这是一个平均统计数据)。在我们的调查研究中,我们通过两个问题确定种族。第一个问题是关于西班牙裔血统的(它被编码为“西班牙裔”或“非西班牙裔”的因素变量)。第二个问题是关于种族/民族的(它也被编码为一个因素变量,选项包括白种人、非裔美国人、亚裔人和其他人。我们这样做是因为经常存在交叉,可能导致报告不足 出于报告目的,我们

我搜索了这个主题,找到了部分解决方案,但仍然停留在一个方面。我正试图从dplyr操作一个管道摘要表,以便我可以用ggplot绘制出来。数据来自调查研究。我想按种族报告一个反应变量(这是一个平均统计数据)。在我们的调查研究中,我们通过两个问题确定种族。第一个问题是关于西班牙裔血统的(它被编码为“西班牙裔”或“非西班牙裔”的因素变量)。第二个问题是关于种族/民族的(它也被编码为一个因素变量,选项包括白种人、非裔美国人、亚裔人和其他人。我们这样做是因为经常存在交叉,可能导致报告不足

出于报告目的,我们希望将西班牙裔添加到表和绘图中。我知道如何使用dplyr进行此操作,但我无法对行的显示方式进行重新排序。每次尝试重构都没有奏效。即使对于猫来说,fct_relevel和fct_recode等选项也没有奏效

以下是相关代码:

# Generate some random anonymous data
dd.scrub <- data.frame(matrix(NA, ncol = 3, nrow = 100))
names(dd.scrub) <- c("Ethnicity", "Hispanic", "Attachment.base")
ethnicities <- c("Caucasian", "AA", "Asian", "Other")
hispanic_origin <- c("Hispanic", "Non-Hispanic")
set.seed(40769)
dd.scrub$Ethnicity <- factor(floor(runif(100, min=1, max=5)),
                         levels = c(1:4),
                         labels = ethnicities)
dd.scrub$Hispanic <- factor(sample(hispanic_origin, 
                               size = 100, 
                               replace = TRUE,
                               prob=c(0.2, 0.8)))
dd.scrub$Attachment.base <- rnorm(100, mean = 26.8, sd=7.921)

# By ethnicity including Hispanic origin (HHI + Hispanic?)
attachment.ethnicity <- dd.scrub %>% filter(!is.na(Ethnicity)) %>%
group_by(Ethnicity)
attachment.ethnicity.sum <- summarise(attachment.ethnicity, 
Attachment = mean(Attachment.base))

# Ethnicty + hispanic
library(forcats)
library(questionr)
attachment.hispanic.sum <- dd.scrub %>% 
filter(Hispanic == "Hispanic") %>% 
    summarise(Attachment = mean(Attachment.base))
fct_expand(attachment.ethnicity.sum$Ethnicity, "Hispanic")
attachment.ethnicity.sum <- bind_rows(attachment.ethnicity.sum, attachment.hispanic.sum)
attachment.ethnicity.sum$Ethnicity <- addNAstr(attachment.ethnicity.sum$Ethnicity, value = "Hispanic")
#生成一些随机匿名数据

dd.scrub欢迎使用堆栈溢出!请在您的问题中包含一个,并使您的数据可用(例如使用
dput()
)这样其他人就可以重现你的问题。谢谢!我会用一个例子来更新。我的数据受保密协议的约束,因此不能公开共享。但会提供一些虚拟数据来说明。你是否只想重新排列
附件.种族.sum
?是的。奇怪的是,西班牙裔会低于其他人。在一个完美的世界里,他们应该按照字母顺序重新排序。当你定义
种族时,你才是真正定义因素等级顺序的人
# A tibble: 5 × 2
  Ethnicity Attachment
     <fctr>      <dbl>
1 Caucasian   27.01052
2        AA   29.62579
3     Asian   26.38861
4     Other   26.75793
5  Hispanic   27.57609