gpt4 book ai didi

r - 如何在 R 中拆分数据集和绘图

转载 作者:行者123 更新时间:2023-12-04 10:28:14 24 4
gpt4 key购买 nike

我使用的数据集如下:

1  48434  14566
1 56711 6289
1 58826 4174
2 56626 6374
2 58888 4112
2 59549 3451
2 60020 2980
2 60468 2532
3 56586 6414
3 58691 4309
3 59360 3640
3 59941 3059
.
.
.
10 56757 6243
10 58895 4105
10 59565 3435
10 60120 2880
10 60634 2366

我需要在第 3 列的 R 中为第一列的每个值绘制一个图,即对于上述数据,第 3 列的值会有 10 个不同的图(每组 1-10)。 x 轴是迭代次数,Y 轴是最大 63000 的值。我还需要用红色线连接点。我是 R 的新手,一直在阅读文档,但这让我更加困惑。任何人都可以帮忙。

编辑:我实际上想要 V3 值的折线图。 v3 列的行数在 x 轴上,v3 值在 y 轴上。我想要不同的图表,每个图表用于 v1 指示的组。 Chase 的解决方案有效,除了我想要移动轴,V3 值应该在 y 轴上。这里是示例 alt text

EDIT2:@Roman,这是我正在执行的代码。

library(lattice)
d <- read.delim("c:\\proj58\\positions23.txt",sep="")
d <- do.call(rbind, lapply(split(d, d$V1), function(x) {
x$iterations <- order(x$V3, decreasing=TRUE)
x
}))
xyplot(V3 ~ iterations | V1, type="l", data=d)

这是我得到的错误,

    > 
> source("C:\\proj58\\plots2.R")
> d
V1 V2 V3 iterations
1.1 1 48434 14566 1
1.2 1 56711 6289 2
1.3 1 58826 4174 3
1.4 1 59528 3472 4

我没有得到任何情节??我错过了什么好的,我知道了。不知道出了什么问题。在这里,

alt text

还有 2 件事,如何将盒子上的 V1 标签更改为实际数字,如 1,2,...其次,我有包含 100 个组的文件,我尝试了一个,它在一个页面上制作了所有图表(显然不可读),我可以在多个窗口上制作这些吗?

最佳答案

好吧,首先您需要为第一个变量的每个子集分别创建一个带有行号的变量。这是一种方法,通过按第一个变量拆分数据集,创建一个具有行号的新变量,然后重新组合。

您可能还希望 V1 成为一个因子(分类变量)。

d <- do.call(rbind, lapply(split(d, d$V1), function(x) {
x$iterations <- 1:nrow(x)
x
}))
d$V1 <- factor(d$V1)

然后使用 lattice 库,你会做类似的事情

xyplot(V3 ~ iterations | V1, type="l", data=d)

要使绘图出现在多个页面上,请使用 layout 选项限制页面上的绘图数量。为此,您需要将绘图保存到支持多页输出的文件中。例如,对于 5 行和 5 列:

trellis.device("pdf", file="myplot.pdf")
p <- xyplot(V3 ~ iterations | V1, type="l", data=d, layout=c(5,5))
plot(p)
dev.off()

此外,要在使用 source 运行代码时显示绘图,您需要专门绘制 xyplot 命令的输出,例如

p <- xyplot(...)
plot(p)

在控制台上运行时,这不是必需的,因为默认情况下会调用 plot(好吧,实际上是 print 函数)。

关于r - 如何在 R 中拆分数据集和绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751651/

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