我试图重现dplyr包中的一个示例但是此错误消息.我期待看到以每种组合的频率产生的新列n.有人能告诉我我错过了什么吗?我三重检查包装是否已加载.一如既往地感谢您的帮助.
library(dplyr)
# summarise peels off a single layer of grouping
by_vs_am <- group_by(mtcars, vs, am)
by_vs <- summarise(by_vs_am, n = n())
Run Code Online (Sandbox Code Playgroud)
n()出错:不应直接调用此函数
df <- data.frame (Categories=c("Alpha Category", "Alpha Category",
"Alpha Category", "Bravo Category",
"Bravo Category", "Bravo Category",
"Charlie Category", "Charlie Category",
"Charlie Category"),
choices=c("alpha1", "alpha2", "alpha3", "bravo1",
"bravo2", "bravo3", "charlie1", "charlie2",
"charlie3") ,
ratings=c(20,60,40, 55,75,25,65,35,45))
df.plot <- ggplot(df, aes(Categories, ratings, fill = choices))
+ geom_bar(position="dodge", stat="identity")
+ coord_flip()
df.plot <- df.plot
+ theme_classic(base_size = 16, base_family = "")
+ scale_fill_brewer(palette="Paired")
df.plot <- df.plot
+ scale_y_continuous(breaks=seq(0,100,by=10),limits=c(0,80) )
+ ylab("Ratings")
+ theme(axis.text.y = element_text(size=16)) #change font size of y axis label
df.plot
Run Code Online (Sandbox Code Playgroud)
我真的很感激一些帮助
最重要的是,我想按照"评级"的降序显示每个"类别"中的"选择",例如,"查理类别"将显示charlie1,然后是charlie3,然后是charlie2. …
下面我有一个关于我想要函数做什么的工作示例,然后是函数的脚本,注意错误发生的位置.
错误消息是:
Error: index out of bounds
Run Code Online (Sandbox Code Playgroud)
我所知道的通常意味着R无法找到被调用的变量.
有趣的是,在我下面的函数示例中,如果我只通过my subgroup_name
(它传递给函数并成为新创建的数据框中的列),该函数将成功重新组合该变量,但我还想按新创建的列进行分组(来自融化)称为变量.
类似的代码用于我使用regroup()
,但已被弃用.我试图使用group_by_()
但无济于事.
我已阅读了许多其他帖子和答案,并在今天进行了几个小时的实验,但仍未成功.
# Initialize example dataset
database <- ggplot2::diamonds
database$diamond <- row.names(diamonds) # needed for melting
subgroup_name <- "cut" # can replace with "color" or "clarity"
subgroup_column <- 2 # can replace with 3 for color, 4 for clarity
# This works, although it would be preferable not to need separate variables for subgroup_name and subgroup_column number
df <- database %>%
select(diamond, subgroup_column, x,y,z) %>% …
Run Code Online (Sandbox Code Playgroud)