Совершенно неясно, что вы хотите, чтобы барплот. Предположим, вы хотите увидеть среднюю цену за район. Если это то, что вам нужно, вы можете действовать следующим образом.
Сначала приведем несколько иллюстративных данных:
set.seed(123)
Neighborhood <- sample(LETTERS[1:4], 10, replace = T)
Price <- sample(10:100, 10, replace = T)
df <- data.frame(Neighborhood, Price)
df
Neighborhood Price
1 C 23
2 C 34
3 C 99
4 B 100
5 C 78
6 B 100
7 B 66
8 B 18
9 C 81
10 A 35
Теперь вычислите средние значения по окрестностям, используя функцию aggregate
, и сохраните результат в новый фрейм данных:
df_new <- aggregate(x = df$Price, by = list(df$Neighborhood), function(x) mean(x))
df_new
Group.1 x
1 A 35
2 B 71
3 C 63
И, наконец, вы можете построить средние цены в переменной x
и добавить названия окрестностей из столбца Group.1
:
barplot(df_new$x, names.arg = df_new$Group.1)
Еще проще Решение это, используя tapply
и mean
:
df_new <- tapply(df$Price, df$Neighborhood, mean)
barplot(df_new, names.arg = names(df_new))