0

我可以看到这已经被问过好几次了,但我找不到有效的方法。有没有聪明的人可以解决这个问题?

    data.frame(
    fast_car = sample(0:1, 35, replace = TRUE),
    slow_bus = sample(0:1, 35, replace = TRUE),
    fast_bus = sample(0:1, 35, replace = TRUE),
    slow_car = sample(0:1, 35, replace = TRUE)) %>% 
  upset(order.by = "freq")

这制作了一个非常漂亮的不安图,但我需要去掉集合标签中的下划线。我尝试了这篇文章中建议的答案:UpsetR change set name labels in graph

fast_car <- as.list(sample(0:1, 35, replace = TRUE))
slow_bus <- as.list(sample(0:1, 35, replace = TRUE))
fast_bus <- as.list(sample(0:1, 35, replace = TRUE))
slow_car <-  as.list(sample(0:1, 35, replace = TRUE))

listinput = list(fast_bus, fast_car, slow_bus, slow_car)
names(listinput) = c("fast bus", "fast car", "slow_bus", "slow car")
upset(fromList(listinput), order.by = "freq")

然而,这会产生很好的标签,但图表无法正确显示。我也尝试过使用带有标签列的小标题,但该包似乎不适用于小标题。

有没有办法做到这一点?我只会使用一个词,但它确实需要 2 个词标签。

如果确实存在解决方案,任何帮助将不胜感激?

非常感谢!

4

1 回答 1

0

通常应避免使用“非标准”列名,但这可能是一个例外。如果您引用它们或用反引号将它们括起来(并确保它们不会被自动更正),则可以在列名中使用空格和其他特殊字符。

几个选项:

## creating the data frame with nonstandard names
data.frame(`fast car` = c(0, 1), check.names = FALSE)

## modifying names of an existing data frame
your_data %>% 
  setNames(c("fast car", "slow bus", "fast bus", "slow car") %>% 
  upset(order.by = "freq")
于 2022-02-23T17:06:46.367 回答