如何在 R 中分割数据集并绘图

2024-06-22

我正在使用如下数据集:

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

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

EDIT: I actually want line graph of V3 values. the number of rows of v3 column would be on x-axis and v3 values on y-axis. And I want different graphs each for a group indicated by v1. Chase's solution works except that I want the axis shifted, the V3 values should be on y-axis.here is example alt text

编辑2:@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

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

还有 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函数)默认被调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 R 中分割数据集并绘图 的相关文章

随机推荐

  • vagrant 与 laravel homestead 共享

    我遇到了让 vagrant share 与 laravel homestead vagrant box 结合使用的问题 我的 homestead yaml 文件如下所示 ip 192 168 10 10 memory 2048 cpus 1
  • 5.2 中的沙箱嵌入式 Lua / 从 lua.file 设置函数环境

    假设我至少有两个 lua 脚本文件 测试1 lua 测试2 lua 两者都定义了一个 init 函数和其他具有相似名称的函数 我如何使用 Lua 5 2 将使用 c c 的每个脚本文件加载到单独的环境中 以便相同的函数名称不会冲突 我找到了
  • C、如何使用pthread_create函数创建线程

    我正在为调度队列创建一个 c 文件 该队列获取任务并将其放入链表队列中 为了做到这一点 我需要使用创建线程 pthread t cThread if pthread create cThread NULL work param perror
  • Javascript 警报消息替代方案

    在我的在线页面上有一条简单的警报消息 我基本上需要更改标题 但我读到我不能这样做 这是代码 在警报消息中 我获取网站的网址 然后获取其下方的消息 除了 JavaScript 警报之外 最快的替代方法是什么 Thanks 我很喜欢这个 htt
  • PHP usort 重新排序数组,所有排序值都相同

    我使用 usort 对每个元素中具有关联数组的数组进行排序 当我在数组中排序的所有值都相同时 它仍然会更改数组中元素的位置 有没有办法防止这种情况 例如这个 array array name gt Ben authn weight gt 8
  • 在真实 iPhone 上测试应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 将 iphone 应用程序从 xcode 部署到 iphone https stackoverflow com questions 5091883 deploy an iphone app from
  • 在 Mac OS X 上构建 Google Breakpad

    我正在尝试建立谷歌 Breakpad http code google com p google breakpad 对于 Mac OS X 作为移植应用程序的一部分 基于主干修订版 782 Breakpad 维基 http code goo
  • 在专用 Worker 中生成共享 Worker

    我正在玩WebWorkers 不知何故 我想到让一个页面的不同实例知道另一个页面何时关闭 因此我写了一个 Shared Worker 并且它工作得很好 但现在我想要一个专用工作人员充当共享工作人员的接口 这样 UI 中昂贵的操作就不会影响与
  • Liquid:我可以从数组中获取随机元素吗?

    我正在尝试从数组中选择一个随机元素 使用 Liquid Jekyll 可以吗 我可以创建一个数组 并访问给定的索引 但是有没有办法 洗牌 数组 然后选择一个索引 从而从数组中获取随机元素 prefix Foo Bar Baz page pr
  • 是否可以保存对 JavaScript 中尚不存在的元素的引用?

    我以前曾尝试问过这个问题 但很难解释 所以在这里我将尝试重新表述它 这是我的 HTML 正文
  • 如何使用公钥隐私/完整性模式验证 PFX

    我有一个嵌入式软件 可以生成 P12 PFX 格式的输出数据 PFX 是not受密码保护 这意味着数据不是使用密码派生的加密 MAC 密钥 而是使用公钥加密并使用我的私钥签名 In RFC7292 第 3 1 节 https www rfc
  • 反转 PDF 中的白色和黑色

    给定一个黑白 PDF 如何反转颜色 使背景为黑色 其他所有内容为白色 Adobe Reader 可以做到这一点 首选项 gt 辅助功能 仅供节目中观看之用 但不会从本质上更改文档 从而使其他 PDF 阅读器中的颜色也发生反转 如何永久反转颜
  • Jlist 覆盖列表是自动的吗? (漏洞)?

    我希望我能得到帮助 我会问一般性问题 我正在使用一个JList 并且由于JList没有 值 文本 因此我可以显示文本并在代码中使用该值 由于这次泄漏 我创建了List对象 myList 与并行工作JList 我添加的每个项目JList我添加
  • 具有无限参数的 C# 方法或具有数组或列表的方法?

    我最近了解到您可以创建一些具有无限参数的方法 例如 SomeMethod params int numbers 但我的问题是 这与仅创建一个接收列表或数组的方法有什么区别 SomeMethod int numbers SomeMethod
  • jQuery cookie 过期时间

    我能够使用 jQuery 设置 cookie 并重定向到登陆页面 但我不知道如何将 cookie 到期日期设置为少于一天 例如 15 分钟 我无法在中找到解释插件文档 https github com carhartl jquery coo
  • 计算PE文件中入口点的文件偏移量

    In http en redinskala com finding the ep http en redinskala com finding the ep 有关于如何查找 exe 文件中入口点的文件偏移量的信息 在这里我可以读到 EP 文
  • fopen 中的 w+ 模式?

    fopen handle w 我想要打开一个 CSV 文件 读取每一行并对数据库执行一些操作 然后截断 CSV 文件并编写类似的内容 该文件已被读取 w 表示读 写 但文件也会被截断 那么 如果 fopen w 只会删除其中的内容 那么读取
  • 如何将后端计时器与移动应用程序同步

    我正在开发一个选择用户并有 15 秒时间的应用程序 该用户响应的计时器 用户应用程序每 5 秒查询一次数据库 以查看是否选择了该用户 如果是这样 移动应用程序将开始 15 秒 定时器 问题是计时器永远不会匹配 因为用户应用程序可以位于与后端
  • 现有的 swf mp4 播放器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的网站上放了一个 mp4 文件http example com a mp4 http example
  • 如何在 R 中分割数据集并绘图

    我正在使用如下数据集 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 56