Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R (频率)表中一行的方框图_R - Fatal编程技术网

R (频率)表中一行的方框图

R (频率)表中一行的方框图,r,R,我有一个数据集作为.csv文件(基本上是:人们的葡萄酒选择与环境音乐播放的起源有关)。将其作为数据帧读取会导致df如下所示: Music Wine 1 French French 2 Italian French 3 None Italian 4 Italian Italian 5 French Other ... Wine Music Other French Italian French 35

我有一个数据集作为.csv文件(基本上是:人们的葡萄酒选择与环境音乐播放的起源有关)。将其作为数据帧读取会导致df如下所示:

   Music   Wine
1  French  French
2  Italian French
3  None    Italian
4  Italian Italian
5  French  Other
...
          Wine
Music        Other    French      Italian
French       35       39            1
None         43       30           11
Italian      35       30           19
作为一个表,它看起来如下所示:

   Music   Wine
1  French  French
2  Italian French
3  None    Italian
4  Italian Italian
5  French  Other
...
          Wine
Music        Other    French      Italian
French       35       39            1
None         43       30           11
Italian      35       30           19
现在我想创建一个频率图,它只绘制使用Music==“None”进行购买的相对分布。所以基本上我会得到其他=0.511904,法语=0.3571429,意大利语=0.1309524

现在我的问题是,这张桌子不起作用

noMusic <- prop.table(table(data[data$Music == "None"]))
geenMuziekTabel <- prop.table(table(data[data$Music == "None"]))
我想:也许我应该先将我的数据帧子集,然后用它做一个比例表,但R似乎记得还有其他数据,然后做这个表:

          Wine
Music        Other    French      Italian
French       0        0             0
None         43       30           11
Italian      0        0            0
我也试过很多不同的方法,但都没办法解决。有人知道我做错了什么吗

编辑:基于已接受答案的解决方案如下:

noMusicTable <- prop.table(table(musicwine$Wine[musicwine$Music == "None"]))
#noMusicTable <- prop.table(table(subset(musicwine, Music == "None", select = Wine)))
noMusicDF <- as.data.frame(noMusicTable)
# need to declare x and y explicitly; use stat = 'identity' to map bars to y-variable
ggplot(noMusicDF, mapping = aes(x = Var1, y = Freq)) + geom_bar(stat = 'identity', fill='red')

noMusicTable这里有三种正确子集的方法:

dat <- read.table(text = 
  "Music   Wine
   French  French
   Italian French
   None    Italian
   Italian Italian
   French  Other", header = TRUE)

# Two different ways to subset
prop.table(table(dat$Wine[dat$Music == "None"]))
prop.table(table(subset(dat, Music == "None", select = Wine)))

# With dplyr and piping
library(dplyr)
dat %>% 
  filter(Music == "None") %>% 
  select(Wine) %>% 
  table() %>% 
  prop.table()
dat%
过滤器(音乐==“无”)%>%
选择(葡萄酒)%>%
表()%>%
项目表()

看看这个:啊,我花了两个小时的时间拼命寻找答案,事情就这么简单。非常感谢。