R 中的混合合并 - 下标解决方案?

2024-04-03

Note: 我从第一次发布时更改了示例。我的第一个例子过于简单,无法捕捉到真正的问题。

我有两个数据框,它们在一列中以不同的方式排序。我想匹配一列,然后合并第二列中的值。第二列需要保持相同的顺序。

所以我有这个:

state<-c("IA","IA","IA","IL","IL","IL")
value1<-c(1,2,3,4,5,6)
s1<-data.frame(state,value1)
state<-c("IL","IL","IL","IA","IA","IA")
value2<-c(3,4,5,6,7,8)
s2<-data.frame(state,value2)

s1
s2

返回这个:

> s1
  state value1
1    IA      1
2    IA      2
3    IA      3
4    IL      4
5    IL      5
6    IL      6
> s2
  state value2
1    IL      3
2    IL      4
3    IL      5
4    IA      6
5    IA      7
6    IA      8

我想要这个:

  state value1 value2
1    IA      1      6
2    IA      2      7
3    IA      3      8
4    IL      4      3
5    IL      5      4
6    IL      6      5

我快要把自己逼疯了,试图解决这个问题。看起来这应该是一个简单的下标问题。


有几种方法可以做到这一点(毕竟是 R),但我认为最明确的是创建索引。我们需要一个创建顺序索引的函数(从 1 开始,以观察数结束)。

seq_len(3) 
> [1] 1 2 3

但我们需要在每个分组变量(状态)内计算这个索引。为此我们可以使用 Rave功能。它采用数字作为第一个参数,然后是分组因素,最后是要在每个组中应用的函数。

s1$index <- with(s1,ave(value1,state,FUN=seq_len))
s2$index <- with(s2,ave(value2,state,FUN=seq_len))

(注意使用with,它告诉 R 在环境/数据帧中搜索变量。这是比使用 s1$value1、s2$value2 等更好的做法。)

现在我们可以简单地合并(连接)两个数据帧(通过两个数据帧中存在的变量:状态和索引)。

merge(s1,s2)

这使

   state index value1 value2
1    IA     1      1      6
2    IA     2      2      7
3    IA     3      3      8
4    IL     1      4      3
5    IL     2      5      4
6    IL     3      6      5

为了使其发挥作用,每个数据框中按状态应该有相同数量的观察值。

[编辑:为了清晰起见,对代码进行了评论。] [编辑:使用 seq_len 而不是按照 hadley 的建议创建新函数。]

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

R 中的混合合并 - 下标解决方案? 的相关文章

  • R 编程常用工具

    如果已经以不同的方式问过这个问题 我深表歉意 但我找不到任何达到我想要的东西 我真的是从其他软件包 SPSS 开始接触 R 的 当我了解真正可以做什么时 我意识到我还需要其他 工具 这让我想到了我的问题 您有哪些用于开发 R 代码的设置 我
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 如何在 R 中将字符串解析为层次结构或树

    有没有办法将表示组的字符串解析为 R 中的层次结构 假设我的小组结构如下 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 3 1 1 3 1 1 1 3 2 1 1 3 3 1 2 1 2 1 1 2 1 1 1 2 1 2 1
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 如何定义“f_n-chi-square”函数并使用“uniroot”求置信区间?

    I want to get a 95 confidence interval for the following question 我已经写了函数f n在我的 R 代码中 我首先使用 Normal 随机采样 100 个样本 然后定义函数h
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d
  • R - 与 SpatialPolygonsDataFrame 对象相交的 SpatialLinesDataFrame 列表的嵌套循环

    我有一系列需要完成的步骤SpatialLinesDataFrame 此处的 线 基于对象与多特征中各个特征的关系SpatialPolygonsDataFrame 多边形 对象 简而言之 每个线列表元素源自单个面要素内部 并且可能会也可能不会
  • 如何在ubuntu的conda环境中更改Rstudio中的R版本

    我在基本系统中安装了 R 4 3 和 Rstudio 在 conda 环境中安装了旧版本的 R 4 2 3 命令which R返回环境中安装的 R 的目录 home 用户 miniconda3 envs anndata2ri pip bin
  • 从日期变量创建月末日期

    我有一个包含日期变量的大型数据框 它反映了该月的第一天 有没有一种简单的方法来创建代表该月最后一天的新数据框日期变量 以下是一些示例数据 date start month seq as Date 2012 01 01 length 4 by
  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • 如何在 R 中合并同名列表中的数据框?

    我有一个包含很多数据框的列表 如果它们具有相同的名称 我想合并它们 即合并所有具有相同名称 a 和 b 的数据框 像这样 a lt aaaaa b lt bbbbb c lt ccccc g lt list df1 lt data fram
  • 为什么数据帧上的 is.vector 不返回 TRUE?

    tl dr R 中的向量到底是什么 长版 R 中很多东西都是向量 例如 数字是长度为 1 的数值向量 is vector 1 1 TRUE 列表也是一个向量 is vector list 1 1 TRUE 好的 所以列表是一个向量 显然 数
  • 使用 R 下载压缩数据文件、提取和导入数据

    EZGraphs 在 Twitter 上写道 很多在线 csv 都被压缩了 有没有办法下载 解压缩存档并使用 R 将数据加载到 data frame Rstats 我今天也尝试这样做 但最终只是手动下载 zip 文件 我尝试过类似的东西 f
  • R中的重叠矩阵

    我有以下数据框 id channel 1 a 1 b 1 c 2 a 2 c 3 a 我想创建并重叠矩阵 它基本上是一个方阵 行和列标签为 a b c 表中的每个条目显示每个通道共有多少个 id 例如 在上面的例子中 矩阵看起来像 a b
  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 访问或解析 R 中的 summary() 中的元素

    我运行以下 R 命令来进行 Dunnett 测试并获取摘要 如何访问下面线性假设的每一行 这是摘要输出的一部分 基本上我不知道摘要的结构 我尝试使用名称 但它似乎不起作用 因为我没有看到任何命名属性来提供这一点 library multco
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段

随机推荐

  • Magento - 致命错误:类名必须是有效的对象或字符串

    我在安装 Magento 时遇到问题 希望有人能帮助我解决 当我访问该网站时 我突然开始收到以下错误消息 Fatal error Class name must be a valid object or a string in app co
  • 科学记数法中的小“e”/Matlab中的Double是什么

    当我计算一个非常小的数字时 matlab给出 1 12345e 15这是什么 我可以将其解释为 1 12345 10 15 或其 1 12345 e 15 我很着急 抱歉问了这个愚蠢的问题 e 代表指数 它的科学计数法 http en wi
  • Crontab 格式化 - 每 15 分钟一次

    我试图让一个简单的 crontab 作业每 15 分钟运行一次 但在决定如何格式化计时时遇到困难 我一直在写的内容如下 15 我很确定这只运行每小时的前 15 分钟 我认为 crontab 允许用户指定确切的运行时间 即 0 15 30 4
  • 从主题读取后立即异步提交消息

    我正在尝试在阅读主题后立即提交一条消息 我已点击此链接 https www confluence io blog apache kafka spring boot application https www confluent io blo
  • 如何在drawString Java中更改字体大小

    如何让字体变大g drawString Hello World 10 10 g setFont new Font TimesRoman Font PLAIN fontSize 其中 fontSize 是一个 int 这绘制字符串的API h
  • 异步运行一些 Python 代码的正确方法是什么?

    我需要从我的普通 Flask 应用程序发送邮件 所以我认为最简单的方法是使用 smtplib 发送邮件 但我必须异步执行 你不能只在请求中插入 3 秒的延迟 对吧 因此 我将电子邮件添加到队列 psql 表 中 并从读取该表并使用 smpt
  • 如何在 R 中创建具有特定 MA(或 q)项的 ARIMA 模型

    我无法确定使用 arima stats 创建 ARMA 模型的特定方法 该模型具有特定的 MA 项 而这些项不仅仅由最大数指定 我的意思是 我需要指定一个 AR 1 MA 1 4 模型 该模型应该产生截距 AR1 项 MA1 项和 MA4
  • 将视频保存到 CameraRoll React-Native

    可以使用cameraRoll在React Native上保存视频 对于使用saveImageWithTag 的图像 这很容易 但我找不到视频文档 将视频保存到相机胶卷非常容易 我使用以下代码行完成了它 saveVideoToCameraRo
  • 对数据框中的列中的数据进行分类

    我的数据框中有一列数字 我想将这些数字分类为例如高 低 排除 我该如何做到这一点 我一无所知 我尝试查看剪切函数和类别数据类型 一个简短的例子pd cut 让我们从一些数据框开始 df pd DataFrame A 0 8 2 5 9 15
  • 点击 wkwebview 链接时不会打开

    我正在开发一个应用程序 其中一些代码继承自其他开发人员 并具有加载 html 文件的 Web 视图 html 文件中包含电话号码和网页链接 如果长按电话号码将会打开 但 html 链接不会打开 我希望它们通过短按打开 但短按什么也没有发生
  • 从其他进程向 WPF 单例应用程序发送数据

    我有一个 WPF 单例应用程序 其中任何时候只有一个实例在运行 如果用户尝试启动另一个实例 我们检查它是否已经在运行 然后我们终止这个新进程并将现有进程置于前面 现在 我们需要从另一个进程 可以是 xls word 或另一个独立应用程序 打
  • 如何直接从protobuf创建GRPC客户端而不将其编译成java代码

    使用 gRPC 时 我们需要通过协议缓冲区编译器 protoc 或使用 Gradle 或 Maven protoc 构建插件从 proto 服务定义生成 gRPC 客户端和服务器接口 Flow now protobuf file gt ja
  • 安装过程中,Vista 上的各种文件类型在哪里

    在 Windows XP 上安装我的软件总是很容易 所有内容都在 c Program Files myprogram 目录中 这包括 可执行程序本身和任何 dll Readme txt 和 License txt 帮助文件 hlp 或 ch
  • Angular 4 中的 ID 路由

    我在 Angular 4 中的路由方面需要帮助 我想像这样显示 URL 本地主机 4200 user 1 如果我单击第一个用户的查看详细信息 我对如何做到这一点有点困惑 我已经在下面的代码中尽力了 但它仍然不起作用 应用程序路由 modul
  • 什么时候使用inout参数?

    将类或基本类型传递给函数时 函数中对参数所做的任何更改都将反映在类外部 这基本上是同一件事inout参数应该做的 inout 参数的良好用例是什么 inout意思是修改局部变量也会修改传入的参数 如果没有它 传入的参数将保持相同的值 使用时
  • 有一个不错的 OpenCL 入门套件吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一些经验OpenGL它是可编程管道 我愿意给OpenCL不过 尝试一下 有人可以提出一个很好的集成套件来使用OpenCL 我只知道石英作曲家看起来
  • Mysql 将几列转换为一行

    我有这样的事情 id month col col2 101 Jan A B 102 feb C A 102 feb D Q 我需要这样的东西 id month col col2 101 Jan A B 102 feb C D A Q 为了获
  • Flutter - 如何更新用于构建 ListView 的 Future/List 的状态(或值?)(通过 FutureBuilder)

    我在下面粘贴了相关代码 但您也许可以根据我的伪解释来回答 我使用 FutureBuilder 来构建列表视图 我首先使用 init 异步 HTTP 调用 API 并将其解析为映射以表示 json 结果的对象列表 位置 然后 该位置列表将返回
  • 是否可以查看 Azure 应用服务的重启历史记录?

    是否可以查看 Azure 应用服务的重启历史记录 我的意思是在 GUI 中看到它 而不是 API 是的 你可以从Activity log在蔚蓝门户中 截图如下
  • R 中的混合合并 - 下标解决方案?

    Note 我从第一次发布时更改了示例 我的第一个例子过于简单 无法捕捉到真正的问题 我有两个数据框 它们在一列中以不同的方式排序 我想匹配一列 然后合并第二列中的值 第二列需要保持相同的顺序 所以我有这个 state lt c IA IA