gpt4 book ai didi

r - 绘制多个系列的逐点最大值

转载 作者:行者123 更新时间:2023-12-04 12:36:44 26 4
gpt4 key购买 nike

我有一个已导入的 csv,其中包含时间序列的多个数据字段。所以第一个字段是日期时间,其余字段是各种数据点。

如何绘制多个字段的逐点最大值,这些字段将在某种通配符上匹配?

例如:

time,foo1,foo2,foo3
1:00,1,2,3
2:00,3,1,1
3:00,2,5,3

绘制 foo.* 的最简单方法是什么,以便我从每个字段中获得最大值:即该示例的结果图将是:(1:00,3),(2:00,3),(3:00,5)?

为了澄清这个例子,我的意思是最大点在 **

time,foo1,foo2,foo3
1:00,1,2,*3*
2:00,*3*,1,1
3:00,2,*5*,3

最佳答案

假设您的数据在 data.frame x 中,您可以像这样使用 pmax:

cbind(x[,"time"], do.call(pmax, x[,grepl("^foo*",names(x))]))

do.call 调用 pmax 函数,将 x 中的每一列作为 ... 参数(除了第一列,它被负下标删除)。 cbindx 的第一列与 do.call 的结果向量相结合。

请注意,do.call 的第二个参数必须是一个列表,而 data.frame 是一个带有一些额外属性的列表。如果 x 不是 data.frame,则需要将其强制为一个(或常规列表)。

关于r - 绘制多个系列的逐点最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com