R - 根据与现有列匹配的值索引创建新列数据框

2023-12-15

我有一个名为的数据框imp2(大约 6,000 行),其中有 9 列标记'savres1'...'savres9'。每列中的值为 1 或 0。对于每一行,只有其中 1 列的值为 1(其余均为 0)。

我想创建一个名为的新专栏'savres'我将在其中放入一个 1 到 9 之间的值,该值与保存 1 值的列(在这组 9 列内)的索引相匹配。例如。如果'savres7'是 1 并且这些列的其余部分是 0,那么savres应等于 7。

我使用过几种变体which, match and %in%找到值,但我没有得到我期望的输出。

下面是最近的试用函数和在数据框中创建的行示例集。

最近尝试的解决方案:

imp2 <- within(imp2, savres <- which(c(savres1, savres2, savres3, savres4, savres5, savres6, savres7, savres8, savres9) == 1) %% 9 + 1)

Results:

(注意,我没有包含所有列,但从这里的 4 列中,您可以看到该函数不起作用 -'savres'第 4 行的值应为 3,第 1 行和第 2 行的值不应为 4 或 2)

sample <- head(imp2[c('savres1','savres2','savres3','savres4')],4)

savres | savres1 | savres2 | savres3 | savres4
4      |     0   |    0    |    0    |    0
2      |   0     |    0    |    0    |    0
1      |   1     |    0    |    0    |   0
1      |   0     |   0     |  1      |   0

有人可以推荐一个解决方案吗?

我认为这应该是一个相当简单的操作,但我对我尝试过的许多方法都感到沮丧。


我们可以用max.col

i1 <- grep("^savre", names(df1))
transform(df1, savre = (max.col(df1[i1], "first"))* !!rowSums(df1[i1]))
#    col1 col2 savres1 savres2 savres3 savres4 savre
#1    1    2       0       0       0       0     0
#2    2    3       0       0       0       0     0
#3    3    4       1       0       0       0     1
#4    4    5       0       0       1       0     3

data

df1 <- data.frame(col1 = 1:4, col2 = 2:5, savres1 = c(0, 0, 1,0), 
   savres2 = 0, savres3 = c(0, 0, 0, 1), savres4 = 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R - 根据与现有列匹配的值索引创建新列数据框 的相关文章

  • R:如何应用输出多列数据帧的函数(使用 dplyr)?

    我想查找数据框中某一特定列与所有其他列之间的相关性 p 值和 95 CI broom 包提供了一个示例 说明如何使用带有 dplyr 和管道的 cor test 在两列之间执行此操作 对于 mtcars 和 mpg 列 我们可以与另一列进行
  • 什么时候在“strsplit”中设置“perl=TRUE”不起作用(按预期或根本不起作用)?

    我只是在尝试优化一些代码时做了一些基准测试并观察到strsplit with perl TRUE is faster比跑步strsplit with perl FALSE 例如 set seed 1 ff lt function paste
  • R:大向量的高效迭代子集和过滤

    我想更快地执行以下操作 Logic 我有一个向量big共 4 个元素1 2 3 4 我还有一个相同长度的阈值向量1 1 3 1 4 1 5 1 我希望每个元素找到第一个元素的索引next元素高于相应的阈值 在这种情况下 我的预期输出是 2
  • 如何处理“不符合”的数组?

    如何对两个数组进行逐元素算术运算 在第一维度中一致 但也有一个额外的维度 示例 乘法数组a 3 x 3 x 2 按数组b 3 x 3 a lt array 1 18 dim c 3 3 2 b lt diag 3 由于数组不一致 因此以下操
  • cspade() R 错误

    我正在尝试从电缆调制解调器的事件中挖掘规则 链接的是数千个文件 当我尝试在所有设备的合并文件 1200 万行 上运行 cspade 算法时 它会花费数小时来消耗 RAM 直到它用完我可用的所有 64 GB 因此 我尝试仅在一台设备的链接文件
  • 长变量名在 dplyr 中失败

    长度超过 39 个字符的字符串在 dplyr 中失败 返回错误 错误 索引超出范围 我错过了什么还是这是一个错误 40 个字符不起作用 library dplyr names iris 5 lt vvv 5vvv10vvv15vvv20vv
  • grep() 搜索数据框的列名

    有没有更清晰 更简单 更直接 更短的方法来做到这一点 其中 df1 是数据框 names df1 grep Yield names df1 我想返回任何包含单词 yield 的列名称 Thanks grep has a value应该适用于
  • 带有用户输入的knitr

    我正在使用 R markdown 并使用 Rstudio 来 Knit 我有以下 R markdown 文件 title Untitled author date output html document r setup include F
  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 检查是否存在多列

    是否有更复杂的方法来检查数据框df包含 2 个名为Column 1 and Column 2 if numpy all map lambda c c in df columns Column 1 Columns 2 do something
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 按名称获取多个 pandas 列的索引

    我想获取选定的 pandas 数据框列的数字索引 对于一列来说 这非常简单 nonzero df columns values conditionA 但有多个元素 我有一些有用的东西 但很冗长和巨大 df pd DataFrame colu
  • 如何在不循环的情况下添加组ID?

    我有数据框 例如 productid ordernum p1 10 p2 20 p3 30 p4 5 p5 20 p6 8 我想添加另一列 称为 groupid 它将产品按顺序分组在一起 一旦 sum ordernum 达到 30 分配一个
  • dplyr,do(),从模型中提取参数而不丢失分组变量

    R 帮助中关于 do 的示例略有不同 by cyl lt group by mtcars cyl models lt by cyl gt do mod lm mpg disp data coefficients lt models gt d
  • 从所有数据帧列中删除子字符串

    我有一个单词列表 大约 1000 个单词 我称之为负面单词 CAST ARTICLES SANITARY JAN CLAUSES SPECIAL ENDORSEMENT 我很快就会用这个单词列表制作一个数据框 我还有一个数据框 看起来像 F
  • 如何找到多个 pandas 数据框中一对列与任意顺序对的交集?

    我有多个 pandas 数据框 为了简单起见 假设我有三个 gt gt df1 col1 col2 id1 A B id2 C D id3 B A id4 E F gt gt df2 col1 col2 id1 B A id2 D C id
  • 当每个记录都是一个段落并且某些记录有 4 个字段而其他记录有 6 个字段时,如何将文本文件读入 R

    如何读取文本文件 其中每条记录都是一个段落 每个换行符表示单独的字段 复杂的是 有些记录有 4 行 有些记录有 6 行 当字段数量的差异为 1 时 DWin 解决了我的问题 但当字段数量差异为 2 时 一切都崩溃了 你可以有一个在这里看看他
  • 在另一个 Rmd 中运行选定的块

    我已经在源 Rmd 文件中运行了分析 并且希望仅使用few来自源的块 我已经看到了一些关于从源 Rmd 中提取所有块的答案来自另一个 Rmd 中的 Rmd 文件的源代码 https stackoverflow com questions 4

随机推荐

  • 'NSInvalidArgumentException',原因:'-[UIImageView _isResizable] 自定义表格视图单元格异常

    I get a NSInvalidArgumentException在我的自定义单元的执行时间上 调试器错误日志 2014 12 25 21 39 11 397 Codebuddies 24159 11353215 Terminating
  • PHP 用 dom 返回 html 表的第 n 行

    我正在尝试使用 simplehtmldom http simplehtmldom sourceforge net 打印出表格的第 n 行 目前没有任何反应 我还需要做什么吗 假设第 9 行是 TUE 行 您也可以使用 PHP 内置的 DOM
  • 在Android中读取python pickle数据流

    我有这个文件 其中包含 python pickle 数据流 我必须在 Android 中读取该文件的内容 例如 如果我想在 python 中读取这个数据流 我只需使用以下代码 queue pickle load open filename
  • RuntimeError:加载 state_dict 时出错

    我有以下 PyTorch 模型 import math from abc import abstractmethod import torch nn as nn class AlexNet3D nn Module abstractmetho
  • 合并第一列的结果然后对第二列求和以列出第一列中每个条目的总计

    我是 Bash 新手 所以请耐心等待 我有一个由另一个软件 我无法控制 转储的文本文件 列出了每个用户访问某些资源的次数 如下所示 Jim 109 Bob 94 John 92 Sean 91 Mark 85 Richard 84 Jim
  • c# 类型别名/自定义类型

    我试图将一些 Delphi 代码转换为 C 但我遇到了一个问题 在 Delphi 中我声明了一个新类型 Type TData Array of Extended 我可以在其中使用以下语句访问返回此类型的函数的结果 Function TMyO
  • 如何在php中安装oauth

    如何在 php ini 中安装 oauth任何人都可以向我提供完整的描述 链接和所有库 我尝试从here但我不明白 我想通过以下代码访问oauth令牌 oauth new OAuth API CONSUMER KEY API CONSUME
  • 在 Swift 中添加和删除视图叠加

    从这个问题得出 从 Swift 中的任何类加载屏幕 Issue 调用 hideOverlayView 时 加载叠加视图将显示但不会隐藏 但奇怪的是 叠加层在一段时间后消失 出现后 15 到 30 秒 Code 包含在FirstControl
  • android.content.res.Resources$NotFoundException:资源 ID #0x0 java 异常

    当运行尝试显示对象的 ListView 的片段时会发生此异常 我已经研究了该异常 但其他情况的解决方案似乎与 setText 函数有关 或者尝试将字符串以外的任何内容显示为字符串 我真的不知道还能说什么 提前致谢 Java类 import
  • 从 ASP.NET MVC2 应用程序执行 Ajax 调用时出现问题

    我正在将现有的 ASP NET 应用程序转换为 MVC2 并且我有一个使用 Ajax 通过 jQuery 调用的现有方法 该方法以前可以工作 但现在不起作用 因此 由于使用 MVC2 我似乎需要做一些我无法弄清楚的更改 我已经降低了代码的复
  • Windows 应用程序可以选择用 C++ 写入控制台吗?

    我想要一个具有以下行为的 Windows 应用程序 1 如果它是从现有的命令行窗口 cmd exe 启动 那么它将其标准输出写入该控制台 2 如果通过双击其图标来启动它 则它不会打开新控制台 也不会在任何地方写入其标准输出 为了达到 1 我
  • 围绕画布中的中心点旋转图像

    围绕其中心旋转画布上的图像 我尝试了网上的一些例子 但失败了 如果我正在使用bitmap creatbitmap使用矩阵我收到错误 请建议我哪个更好 提前致谢 Aswan 您可以使用矩阵来旋转 首先设置位置 我使用位图中心的坐标 然后进行旋
  • 为什么 sed 不会从文件中删除行?

    我试图从文件中删除特定行 然后将编辑后的行附加到文件中 我得到了最后一部分 但我删除旧行的 sed 命令不起作用 sed userinput d file1 txt gt file2 txt 这最终会将所有文件内容添加到新文件中 而不仅仅是
  • 找到字符串的第一个字符,然后将其与符号C ++进行比较

    尝试检查字符串的第一个字符以查看它是否包含 string pathname test if pathname at 0 if first character is a slash then delete the slash but only
  • 每个源文件的标头

    我试图了解每个源文件方法的一个标头背后的目的 在我看来 标头用于共享函数声明 typedef使用它们的多个文件之间的 和宏 当你为你的头文件 c它的缺点是 每次您想要查看函数声明或宏时 您都需要引用头文件 并且通常更简单的是 所有内容都在一
  • 什么是 pro *c?

    这有什么用 我们如何从数据库中访问数据 Pro C 实际上是一个用 C 代码访问 Oracle 数据库的预编译器 您可以使用以下语句编写代码 int sal EXEC SQL SELECT salary INTO sal FROM empl
  • PHP Composer Autoload 出现类未找到错误

    错误是 Fatal error Uncaught Error Class Championsweb Model VO CompeticionVO not found in E Drive Proyectos ChampionsEclipse
  • 保存来自 url 的图像

    是否可以使用保存图像Visual Basic 2008从 URL 到我的电脑 例如 From www domain com image jpg to C folder image jpg P S 我需要最简单的代码示例 然后我将根据需要进行
  • 将 UISplitViewController 放在自己的 XIB 中?

    我的 iPad 应用程序以显示登录信息的普通 UIView 启动 用户登录后 屏幕应该切换到分割视图 然而 XCode 的 SplitViewTemplate 以及我在网上找到的所有示例 将 UISplitViewController 放置
  • R - 根据与现有列匹配的值索引创建新列数据框

    我有一个名为的数据框imp2 大约 6 000 行 其中有 9 列标记 savres1 savres9 每列中的值为 1 或 0 对于每一行 只有其中 1 列的值为 1 其余均为 0 我想创建一个名为的新专栏 savres 我将在其中放入一