【发布时间】:2018-08-01 08:14:02
【问题描述】:
我有一个数据框数组,都具有相同的列。我想为每个数据框的特定列自动绘制不同的线。比如:
plot(array[]$time, array[]$data)
这样的可能吗,还是我必须循环每个数据帧并为每个数据帧添加一个 line()?
编辑
对不起,实际上我创建的是一个列表。
基本上我有两张表,connections,列出了不同的 TCP 连接信息:
src | src_port | dst | dst_port
和probes,其中包含有关数据包和传输数据的时间序列数据:
timestamp | src | src_port | dst | dst_port | packets | bytes
为了绘制所有不同连接的时间序列,我创建了一个数据框子集列表,如下所示:
connection <- vector(mode='list', length = nrow(connections))
for (row in 1:nrow(connections)){
connection[[row]] <- subset(probes, src == connections[row, 'src'] & src_port == connections[row, 'src_port'] & dst == connections[row, 'dst'] & dst_port == connections[row, 'dst_port'])
}
我想要获得的是绘制所有这些子集,其中 x 轴为时间戳,y 轴为字节,考虑到每个连接的不同时间序列。
我希望我现在能更好地澄清问题。
【问题讨论】:
-
寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。你真的有一个data.frames数组吗?或data.frames列表?这些在 R 中是不同的。通常在绘图之前将数据合并到单个 data.frame 是有意义的。
-
据我所知,R 中没有 data.frames 数组之类的东西。也许你的意思是 data.frames 列表?在这种情况下,您可以使用 lapply()。
-
@Aleh:你对 R 的了解太有限了。数据框是列表,列表可以是矩阵或数组的可索引元素。
-
@42 可能是,请在代码中提供一个示例。否则,您可以将 data.frames 存储在列表中并运行 lapply() 来填充绘图。
-
@Aleh 对不起,我刚刚编辑添加了更多详细信息
标签: arrays r list dataframe plot