Как создать параллельный график в R? (Ошибка в -0.01 * высота: нечисловой c аргумент бинарного оператора) - PullRequest
0 голосов
/ 27 мая 2020

У меня есть матрица типа

    1    2    3    4    5   
A " 9" "27" " 0" "46" "50"
B "46" "34" "27" "22" " 3"

, из которой я пытаюсь создать штриховой график с помощью

barplot(df, beside=TRUE)

, но получаю сообщение об ошибке

Error in -0.01 * height : non-numeric argument to binary operator

и я не понимаю, что не так. Я хочу, чтобы столбчатый график был рядом с ним, который идет от 1 до 5, как имена столбцов, и есть две полосы (A и B) для каждого номера рядом.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Вот воспроизводимый пример:

df <- matrix(c("9", "27", "0", "46", "50", "46", "34", "27", "22", "3"), nrow = 2, ncol = 5, byrow = TRUE,
           dimnames = list(c("A", "B"),
                           c("1", "2", "3", "4", "5"))) 
class(df) <- "numeric"

barplot(df, beside=TRUE)

А вот ссылка на вариант ответа с описанием вариантов преобразования символа в числовую c матрицу: Преобразовать символьную матрицу в числовую c матрица

Plot

0 голосов
/ 27 мая 2020

Ваши числа сохраняются как символы, поэтому вы получаете ошибку non-numeric argument. Попробуйте это:

df <- matrix(c("1","2","3","4"), ncol = 2) #use your own data, just to make it reproducible

df <- apply(df,1, as.numeric)

barplot(df, beside=TRUE)
...