Если вы пытаетесь сделать круговую диаграмму, большинство методов сделают большую часть работы за вас. Нет необходимости явно рассчитывать проценты. В любом случае, вывод table
- это именно то, что вы хотите вместе с pie
# Load your data
ds <- read.csv(header = TRUE, text =
"userid,progress
1, incomplete
2, complete
3, not attempted
4, incomplete
5, not attempted
6, complete
7, complete
8, complete
9, complete
10, incomplete")
# Tabularize
tab <- table(ds$progress)
pie(tab) # Make piechart

Как вы видите ниже, table
подсчитывает количество появлений для каждого уровня и возвращает именованный вектор integer
. Здесь хорошо то, что pie()
вычисляет углы / области из относительных частот и использует имена для обозначения диаграммы.
print(tab)
#
# complete incomplete not attempted
# 5 3 2
Если вы настаиваете на подсчете процентов самостоятельно, вы можете просто использовать tab/sum(tab)
.
Редактировать: Я вижу, что вы пытаетесь использовать пакет highcharter . Почему бы не использовать hcpie
в этом случае? Эта функция принимает коэффициент в качестве входных данных:
library("highcharter")
hcpie(ds$progress)
