尝试从R中的数据框创建条形图

时间:2020-02-17 23:55:56

标签: r

我想更好地可视化我使用barplot()函数在R中创建的一组数据。但是,我不确定如何基于数据帧中的2列执行此过程。

我的数据框名称:myData

下面是我的数据框的内容:

   States Churn
1      AK     3
2      AL     8
3      AR    11
4      AZ     4
5      CA     9
6      CO     9
7      CT    12
8      DC     5
9      DE     9
10     FL     8
11     GA     8
12     HI     3
13     IA     3
14     ID     9
15     IL     5
16     IN     9
17     KS    13
18     KY     8
19     LA     4
20     MA    11
21     MD    17
22     ME    13
23     MI    16
24     MN    15
25     MO     7
26     MS    14
27     MT    14
28     NC    11
29     ND     6
30     NE     5
31     NH     9
32     NJ    18
33     NM     6
34     NV    14
35     NY    15
36     OH    10
37     OK     9
38     OR    11
39     PA     8
40     RI     6
41     SC    14
42     SD     8
43     TN     5
44     TX    18
45     UT    10
46     VA     5
47     VT     8
48     WA    14
49     WI     7
50     WV    10
51     WY     9

基本上,我想创建一个条形图,显示AK值为3,AL值为8,AR值为11,依此类推。

我尝试过: barplot(myData) 但我收到错误消息Error in barplot.default(myData) : 'height' must be a vector or a matrix

1 个答案:

答案 0 :(得分:1)

如果我们传递一个参数,那么它可以是一个命名向量

barplot(setNames(myData$Churn, myData$States))

否则,它可以是一种公式方法

barplot(Churn ~ States, myData)

数据

myData <- structure(list(States = c("AK", "AL", "AR", "AZ", "CA", "CO", 
"CT", "DC", "DE", "FL", "GA", "HI", "IA", "ID", "IL", "IN", "KS", 
"KY", "LA", "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", "NC", 
"ND", "NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", 
"RI", "SC", "SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", 
"WY"), Churn = c(3L, 8L, 11L, 4L, 9L, 9L, 12L, 5L, 9L, 8L, 8L, 
3L, 3L, 9L, 5L, 9L, 13L, 8L, 4L, 11L, 17L, 13L, 16L, 15L, 7L, 
14L, 14L, 11L, 6L, 5L, 9L, 18L, 6L, 14L, 15L, 10L, 9L, 11L, 8L, 
6L, 14L, 8L, 5L, 18L, 10L, 5L, 8L, 14L, 7L, 10L, 9L)), 
class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", 
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", 
"25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", 
"36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", 
"47", "48", "49", "50", "51"))