Я хотел бы использовать stat_smooth, и количество точек, в которых можно оценить сглаживание, должно соответствовать количеству строк в наборе данных.
data <- tibble(x=runif (20), y=runif (20))
data %>%
mutate(m=n()) %>%
ggplot(data=.) +
geom_point(aes(x = x, y = y), colour = 'red') +
geom_smooth(aes(x = x, y = y), method = NULL, se = TRUE) +
stat_smooth(aes(x = x, y = x), n=min(m))
К сожалению, я получу ошибку
Error: object 'm' not found
Спасибо за любые подсказки!
Вы хотели поместить y=x в список аргументов stat_smooth?
Это проблема с областью действия ggplot2 в целом. ggplot не может видеть переменные из вашего фрейма данных за пределами aes().
Я могу предложить три варианта решения вашей проблемы:
data %>%
ggplot() +
geom_point(aes(x = x, y = y), colour = 'red') +
geom_smooth(aes(x = x, y = y), method = NULL, se = TRUE) +
stat_smooth(aes(x = x, y = y), n=nrow(data))
data <- data %>%
mutate(m=n())
ggplot(data = data) +
geom_point(aes(x = x, y = y), colour = 'red') +
geom_smooth(aes(x = x, y = y), method = NULL, se = TRUE) +
stat_smooth(aes(x = x, y = y), n=min(data$m))
data <- data %>%
mutate(m=n())
with(data,
ggplot() +
geom_point(aes(x = x, y = y), colour = 'red') +
geom_smooth(aes(x = x, y = y), method = NULL, se = TRUE) +
stat_smooth(aes(x = x, y = y), n=min(m))
)
Я бы посоветовал не использовать Attach() в случае, если OP работает с наборами данных, отличными от data
в их примере. Вместо этого вы можете использовать with()
для третьего решения.
Отлично — спасибо — к сожалению, я замечаю, что проблема все еще существует — см. мой новый вопрос stackoverflow.com/questions/78930868/…
@nightstand Конечно. Я изменил его, чтобы использовать with().
В своем
stat_smooth(...)
попробуйтеn=nrow(data)