Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.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,这可能是因为不知道该问什么问题 这基本上就是我到目前为止得到的结果(远远不是我想要的) 我也可以为B做这件事,然后简单地创建一个新的数据框,并用这些数字绘制图表。然而,我的直觉也表明,有一个简单的函数可以为我做到这一点。似乎我真正想要的是x轴上有a和B的条形图,y轴上有真/假值计数 谢谢您的帮助。首先,您创建data.frame的方法很糟糕cbind从两个向量创建一个矩阵。由于矩阵只能包含一种数据类型,因此可以得到一个字符矩阵data.frame然后将其转换为具有两个因子列的data.frame

这可能是因为不知道该问什么问题

这基本上就是我到目前为止得到的结果(远远不是我想要的)

我也可以为B做这件事,然后简单地创建一个新的数据框,并用这些数字绘制图表。然而,我的直觉也表明,有一个简单的函数可以为我做到这一点。似乎我真正想要的是x轴上有a和B的条形图,y轴上有真/假值计数


谢谢您的帮助。

首先,您创建data.frame的方法很糟糕
cbind
从两个向量创建一个矩阵。由于矩阵只能包含一种数据类型,因此可以得到一个字符矩阵
data.frame
然后将其转换为具有两个因子列的data.frame。TLDR:丢弃
cbind

c <- data.frame(a, b)
或者像这样:

library(ggplot2)
ggplot(data = c, aes(x = b, y = as.numeric(a))) +
  stat_summary(fun.y = sum, geom = "point")
ggplot(data = c, aes(x = b, fill = a)) +
  stat_bin(geom = "bar", position = "stack")

或者,您可以使用
aggregate
(在可以拆分应用组合的其他函数的分数之一上)在ggplot2之外进行聚合。

使用
aggregate
并保持接近您已经完成的操作

c$a <- as.logical(c$a)
z <- aggregate(. ~ b, c, sum)
qplot(x=z$b, y=z$a, geom="bar", stat="identity")

c$a感谢您提供的data.frame信息。我似乎跳过了很多基本信息,这很有帮助。而且,两种解决方案都能完美工作。如果你重新措辞我最初的问题,你会怎么问?我对术语还不太清楚。我会问“如何拆分应用合并数据帧”吗?
ggplot(data = c, aes(x = b, fill = a)) +
  stat_bin(geom = "bar", position = "stack")
c$a <- as.logical(c$a)
z <- aggregate(. ~ b, c, sum)
qplot(x=z$b, y=z$a, geom="bar", stat="identity")