找到并绘制我在下面制作的X,Y图中的minium,工作代码。 然而,我发现它很难看,并期望更优雅的东西。 tibble,cf,实际上包含两个以上的变量。我把它减少到两个。
谁可以为我提供更优雅的代码?
THX !!
======
ActiveRecord::HasOneThroughCantAssociateThroughCollection (Cannot have a has_one :through association 'Party#organizer' where the :through association 'Party#parties_users' is a collection. Specify a has_one or belongs_to association in the :through option instead.)
答案 0 :(得分:0)
很抱歉不够明确。在我使用下面的基本R代码之前:
`
if ( length(cf[cf$y > 0.5, c("x")]) > 0 ) {
xlim <- max(round(cf[cf$y > 0.5, c("x")],1))
} else {
xlim <- min(round(cf$x,1))
}
`
我使用dplyr重新实现。我想知道我是否选择了最好的dplyr实现,因为它对我来说似乎很冗长:
`
xlim <- cf %>% filter(y < 0.5) %>%
arrange(desc(y)) %>%
top_n(1) %>%
select(x)
`
答案 1 :(得分:0)
我认为使用dplyr最简单的方法如下:
xl <- cf %>% filter(y < 0.5) %>%
filter(y == max(y)) %>%
select(x) %>%
as.numeric()
请注意,使用最后一个表达式,您可以将该值用作标量:
ggplot(cf, aes(x, y) ) +
geom_point(size = 1, colour = "blue") +
geom_hline(colour = "red", size = 1.2, yintercept = 0.5) +
geom_vline(colour = "#99CCFF", size = 1, xintercept = xl) +
labs(title = paste0("Y < 0.5 for X > ", xl))