每当我尝试运行代码pull
时,错误消息
Error in make_ansi_style(x[["color"]]) :
Unknown style specification: br_magenta
。
我该如何解决这个问题?
我也有同样的错误,上周正常工作的代码现在在make_ansi_style(x[["color"]])的ggplot: error上出错了:未知样式规格:br_magenta
我不知道这个错误发生在哪里,但是今天我试着运行我的一些代码从2年前,我突然遇到了这个错误,特别是在类似的东西:
data %>% group_by(mygroups) %>% dplyr::summarize(min=min(myfeature))
与2年前的唯一区别是我的数据现在包含一些缺失值。我可以通过正确处理缺失的值来修复它,即min("feat", na.rm=TRUE)
。
但是我不知道为什么这会导致"未知的样式规范"。错误,或者是否与您的问题有关。
数据科学(即tidyverse
)方法,如ggplot
和group_by
需要整洁的输入。特别是ggplot
,需要整洁的输入或fortify()
可以转换为数据帧的任何输入对象。因此,在将绘制的数据传递给ggplot
之前,将其转换为数据帧是安全的。
我曾经在尝试使用数字向量作为输入数据绘制ggplot
图形时遇到过同样的错误。
以ggplot
为例:
library(tidyverse)
data_v <- matrix(rnorm(20*2), ncol=2)
data_clr <- c(rep(-1,10), rep(1,10))
data_v %>%
ggplot(aes(x=data_v[,1], y=data_v[,2], color=(3-data_clr))) +
geom_point(size=2) +
xlab("data_v[,1]") +
ylab("data_v[,2]")
在R Notebook中运行上述代码将输出您提到的错误:
Error in make_ansi_style(x[["color"]]) :
Unknown style specification: br_magenta
但是如果你在R脚本中运行相同的代码输出错误将略有不同(这是一个很好的信息),您将找到问题的根源。下面是您将得到的内容:
Error in `fortify()`:
! `data` must be a data frame, or other object coercible by `fortify()`, not a numeric vector.
Run `rlang::last_trace()` to see where the error occurred.
由于fortify()
无法将数据转换为ggplot
使用的数据帧而发生错误。
如果你运行rlang::last_trace()
查看错误发生的地方,那么你会得到奇怪的东西:
rlang::last_trace()
# output:
# Error in make_ansi_style(x[["color"]]) :
# Unknown style specification: br_magenta
下面是传递数据给ggplot
的正确方法:
## CORRECTED CODE:
library(tidyverse)
data_v <- matrix(rnorm(20*2), ncol=2)
data_clr <- c(rep(-1,10), rep(1,10))
df <- data.frame(data_v)
df %>%
ggplot(aes(x=df[,1], y=df[,2], color=(3-data_clr))) +
geom_point(size=2) +
xlab("data_v[,1]") +
ylab("data_v[,2]")
注意:另一种遇到相同类型错误的方法是将非结构化数据传递给color参数。在下面的例子中,我将一个只包含2个数据点的向量传递给color参数。
library(tidyverse)
data_v <- matrix(rnorm(20*2), ncol=2)
data.frame(data_v) %>%
ggplot(aes(x=data_v[,2], y=data_v[,1], color=c("red","blue"))) +
geom_point(size=2) +
xlab("data_v[,2]") +
ylab("data_v[,1]")
# Error in `check_aesthetics()`:
# ! Aesthetics must be either length 1 or the same as the data (20): colour
# Run `rlang::last_trace()` to see where the error occurred.
rlang::last_trace()
# Error in make_ansi_style(x[["color"]]) :
# Unknown style specification: br_magenta
我得到了同样的问题,并通过导入stringr库解决了这个问题。
library(stringr)