从数据框中删除仅包含 0 或仅包含单个 0 的行

2023-11-25

我正在尝试在 R 中创建一个函数,该函数允许我根据行是否包含带有零的单列来过滤数据集。此外,有时我只想删除所有列中为零的行。

另外,这就是有趣的地方;并非所有列都包含数字,并且列数可能会有所不同。

我尝试将一些数据与我想要获得的结果粘贴到此处。

unfiltered:
    ID  GeneName    DU145small  DU145total  PC3small    PC3total
    1   MIR22HG     33221.5     1224.55     2156.43     573.315
    2   MIRLET7E    87566.1     7737.99     25039.3     16415.6
    3   MIR612      0           0           530.068     0
    4   MIR218-1    0           0           1166.88     701.253
    5   MIR181B2    70723.2     3958.01     6209.85     1399.34
    6   MIR218-2    0           0           0           0
    7   MIR10B      787.516     330.556     0           20336.4
    8   MIR3176     0           0           0           0

any rows with containing a zero removed:
    ID  GeneName    DU145small  DU145total  PC3small    PC3total
    1   MIR22HG     33221.5     1224.55     2156.43     573.315
    2   MIRLET7E    87566.1     7737.99     25039.3     16415.6
    5   MIR181B2    70723.2     3958.01     6209.85     1399.34

only rows that is all zero is filtered away:
    ID  GeneName    DU145small  DU145total  PC3small    PC3total
    1   MIR22HG     33221.5     1224.55     2156.43     573.315
    2   MIRLET7E    87566.1     7737.99     25039.3     16415.6
    3   MIR612      0           0           530.068     0
    4   MIR218-1    0           0           1166.88     701.253
    5   MIR181B2    70723.2     3958.01     6209.85     1399.34
    7   MIR10B      787.516     330.556     0           20336.4

我确实找到了一种方法来删除其中至少有 1 个零的任何行,但通过将所有零与 NA 交换,然后使用complete.cases 进行过滤,这是“作弊”。

此外,通过这样做,它会删除所有行GeneName其中有一个零(对于 MIR10B)。

我可以通过使用 for 循环来解决它,但有人告诉我 R 中的循环非常无效,因此希望避免该解决方案。

编辑:虽然 Xin Yin 的解决方案工作得很好并将数据保存在数据框中,但 David Arenburg 的答案据说更有效并且应该使用。


Using data.table(假设df是你的数据集)

library(data.table)
setDT(df)[, .SD[!all(.SD[, -1, with = F] == 0)], by = GeneName]

#    GeneName ID DU145small DU145total  PC3small  PC3total
# 1:  MIR22HG  1  33221.500   1224.550  2156.430   573.315
# 2: MIRLET7E  2  87566.100   7737.990 25039.300 16415.600
# 3:   MIR612  3      0.000      0.000   530.068     0.000
# 4: MIR218-1  4      0.000      0.000  1166.880   701.253
# 5: MIR181B2  5  70723.200   3958.010  6209.850  1399.340
# 6:   MIR10B  7    787.516    330.556     0.000 20336.400

或者,如果您只想删除带有任何零的行

setDT(df)[, .SD[!any(.SD[, -1, with = F] == 0)], by = GeneName]

#    GeneName ID DU145small DU145total PC3small  PC3total
# 1:  MIR22HG  1    33221.5    1224.55  2156.43   573.315
# 2: MIRLET7E  2    87566.1    7737.99 25039.30 16415.600
# 3: MIR181B2  5    70723.2    3958.01  6209.85  1399.340
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据框中删除仅包含 0 或仅包含单个 0 的行 的相关文章

  • 如何在 R 中的 for 循环内将值存储在向量中

    我正在开始使用 R 但我对以下问题感到非常沮丧 我试图将 for 循环内完成的某些计算的值存储到我之前定义的向量中 问题是如何进行索引 因为for循环迭代代码的次数取决于用户的输入 所以变量i不一定要从1开始 它可以从80开始 for举个例
  • R Shiny:如何将无功值从闪亮模块返回到主服务器功能?

    我有一个简单的玩具示例 它使用 add removeBtn 模块在 第一个 模块中添加和删除 UI 我需要跟踪单击 添加 删除 的次数 如果我不使用模块 这很容易 但我试图在嵌套模块的上下文中执行此操作 代码如下 但基本上 我似乎无法访问主
  • 从 data.frame 在 ggplot 图例中添加信息

    我想在图例中添加信息 哪个传感器具有该值 这是我的代码 z lt data frame a c sensor 1 sensor 2 sensor 3 sensor 4 sensor 5 sensor 6 sensor 7 sensor 8
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • R:按组,测试一个变量的每个值是否存在于另一个变量中

    我有一个数据框架 结构如下 a lt c 1 1 1 2 2 2 3 3 3 3 4 4 b lt c 1 2 3 1 2 3 1 2 3 4 1 2 c lt c NA NA 2 NA 1 1 NA NA 1 1 NA NA df lt
  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 将维基百科中的表格加载到 R 中

    我正在尝试从以下 URL 将最高法院法官表加载到 R 中 https en wikipedia org wiki List of Justices of the Supreme Court of the United States http
  • 如何在Rstudio中快速给几个单词加上引号?

    如何将 MI ID FL 转换为 MI ID FL 而无需键入每个双引号 Hmisc 包有一个函数 Cs 它将评估逗号分隔的文本是否带有引号 Cs MI ID FL becomes MI ID FL
  • 计算 R 行中的非零条目数

    我有以下类型的数据 mode1 mode2 mode3 1 8 1 0 2 0 0 0 3 6 5 4 4 1 2 3 5 1 1 1 数据使用dput structure list mode1 c 8L 0L 6L 1L 1L mode2
  • HTTR GET 新错误:SSL 证书问题:证书已过期

    我已经运行这段代码几个月了 没有出现任何问题 今天我突然开始在我的两台 AWS 服务器上收到以下错误消息 错误 curl curl fetch memory url handle handle SSL证书问题 证书已过期 当尝试运行以下代码
  • 在 Google Colab 上的 R 笔记本中安装 python 库

    我正在尝试在 Google Colab 上的 R 笔记本中安装 python 库 为此我使用 reticulate 包 library reticulate py install pandas 但我得到的结果是这个错误 Error coul
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • 条件和分组 mutate dplyr

    假设我有以下每个抽屉库存增加的数据 gt socks year drawer nbr sock total 1990 1 2 1991 1 2 1990 2 3 1991 2 4 1990 3 2 1991 3 1 我想要一个二进制变量来标
  • 安装 2.15 后 ggplot2 中的 alpha 通道不起作用

    更新到 R 2 15 后 ggplot 中的 alpha 通道似乎不再起作用 plot rnorm 100 rnorm 100 bg cc000055 pch 21 工作得很好但是 qplot rnorm 100 rnorm 100 col
  • 使用“assign()”为列表项分配值

    首先了解一些背景 我写了一个中缀函数 本质上取代了这个习惯用法 x length x 1 lt y 或者简单地说x lt append x y 对于向量 这里是 lt function x y xcall lt substitute x x
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP
  • 如何使用plotmath更新ggplot图例标签

    我正在尝试更新ggplot要使用的图例标签plotmath但是 当我这样做时 它将之前组合的图例分成两部分 通过一个例子可能更容易理解 test data and the default plot gives the correct col
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met

随机推荐

  • 如果使用桥接标头,Xcode 7 不会自动完成

    所以 问题是 当我使用桥接标头导入 Xcode 7 中的任何内容时 Xcode 不会自动完成我的代码 无论我是否导入给定的框架 当前 swift 中的头文件 如果它只是在桥接标头中 Xcode 不会自动完成我的代码自动完成 尽管情况因框架而
  • SCRIPT5:在 IE9 中文件上传时访问被拒绝

    使用文件上传框发布表单时document forms 0 submit 在 ie 9 上 我们收到一条错误消息 SCRIPT5 Access is denied 如果我再点击几次就可以了 作为一种解决方法 我发现了错误并尝试了几次 这似乎工
  • 验证 Paperclip 中的扩展 - Ruby on Rails

    我发现 Paperclip 可以验证文件内容类型 即 image jpeg 但我想专门验证扩展名 这是因为我正在使用一个不起眼的扩展 它不会获得一致的内容类型 有人知道这是否可行 或者是一个好方法吗 猜猜看 没有必要用回形针的方法来验证 你
  • 如何使用 HTML 创建菜单树

    我需要使用 HTML 创建一个菜单树 我在谷歌上进行了搜索 但他们提供了一些软件供下载以创建此内容 但我需要一些脚本和 HTML 标签来执行此操作 谁能帮我解决这个问题 提前致谢 这是一个非常简单的开始 http www dynamicdr
  • 如何利用转义来防止XSS攻击?

    为了防止XSS攻击 输出 已启用转义 上面来自symfony 但我不明白 XSS 是 跨站脚本 的缩写 当您设法将脚本 通常是 javascript 偷偷溜到其他人的网站上并在那里恶意运行时 就会发生跨站点脚本攻击 当用户向网站输入内容时
  • 这个 Dictionary 异常怎么可能?

    给出以下堆栈跟踪 MESSAGE Value cannot be null Parameter name key SOURCE mscorlib TARGETSITE Void ThrowArgumentNullException Syst
  • 如何在 Flutter 中使用 Firebase 更改密码

    我想在 Flutter 中使用 Firebase 更改当前用户密码 任何人都可以帮助我如何实施更改密码方法吗 我知道这是一篇迟到的文章 但现在可以更改登录用户的密码 请务必通知用户重新登录 因为这是敏感操作 void changePassw
  • urlopen 返回有效链接的重定向错误

    我正在用 python 构建一个损坏的链接检查器 构建正确识别使用浏览器访问时无法解析的链接的逻辑变得很繁琐 我找到了一组链接 我可以在这些链接中始终使用抓取工具重现重定向错误 但在浏览器中访问时可以完美解决 我希望我能在这里找到一些见解
  • 为什么我无法与 GTX 480 和 CUDA 5 重叠数据传输和计算?

    我尝试将内核执行与 memcpyasync 重叠 但它不起作用 我遵循编程指南中的所有建议 使用固定内存 不同的流等 我看到内核执行确实重叠 但与内存传输无关 我知道我的卡只有一个复制引擎和一个执行引擎 但是执行和传输应该重叠 对吧 看来
  • 使用 VBA 将单元格格式化为任意货币,无论区域设置如何

    这真的让我很烦恼 因为它的工作方式似乎很不合逻辑 我有一个宏 可以使用一些代码将单元格格式化为货币来获取货币符号 这是涉及的代码 Dim sym As String sym reportConstants ISOcode Just use
  • 更改窗户的 Aero 玻璃颜色?

    我在用着DwmExtendFrameIntoClientArea在我的 WPF 应用程序中获得玻璃效果 这工作正常 我想做的是改变玻璃使用的颜色 我正在编写一个倒计时器 我希望窗口在大多数情况下都是正常的玻璃颜色 然后变成红色 但是仍然有玻
  • 如何在NotificationCompat.Builder.setLargeIcon()中加载Glide缓存图像?

    喜欢这张图片我正在尝试将通知大图标设置为用户个人资料缩略图 像 Whatsapp 或其他聊天应用程序 我努力了 Glide with context asBitmap load messageNotification getLargeIco
  • Swift 视频调整器 AVAsset

    我有这段代码可以将视频大小从 1280 x 720 调整为 640 x 360 但我想要调整大小而不裁剪 有没有办法完全调整大小而不裁剪 这是代码 class func resizer inputURL NSURL completion o
  • babel-preset-env 不使用 webpack 转译箭头函数

    我正在将 babel 与 webpack 一起使用 我试图使箭头函数与 Internet Explorer 一起使用 但我无法让它工作 这是我的包 json开发依赖 devDependencies babel core 6 26 3 bab
  • Android - 如何管理具有不同内容的单个片段的多个实例?

    我希望能够设置各个片段的视图的 setText 和 getText 就像现在一样 当我设置 Framgent 的 TextView 的文本时 它会更改所有片段中该视图的文本 我一直在尝试移动东西 但这是我目前的代码 片段类 public c
  • Python WX - 从 wx 对话框返回用户输入

    我是 Python 和 WX 的新手 我创建了一个简单的测试对话框 如下所示 用组合框提示用户 我想从主程序中的组合框中捕获值 我如何从我的主程序中调用它 这就是我打算如何调用它来显示对话框 但当前不捕获组合框中的值 import high
  • ArgumentParser:具有可选值的可选参数

    如果我有一个带有可选参数值的可选参数 有没有办法在未给出值时验证该参数是否已设置 例如 parser argparse ArgumentParser parser add argument abc nargs args parser par
  • OpenERP 始终显示继承视图而不是原始视图

    原始观点
  • SQL Server - 由于“ARITHABORT”而导致 INSERT 失败

    我使用 NHibernate 和 SQL Server 2005 并且在我的一张表的计算列上有一个索引 我的问题是 当我向该表插入一条记录时 出现以下错误 INSERT 失败 因为以下 SET 选项设置不正确 ARITHABORT I us
  • 从数据框中删除仅包含 0 或仅包含单个 0 的行

    我正在尝试在 R 中创建一个函数 该函数允许我根据行是否包含带有零的单列来过滤数据集 此外 有时我只想删除所有列中为零的行 另外 这就是有趣的地方 并非所有列都包含数字 并且列数可能会有所不同 我尝试将一些数据与我想要获得的结果粘贴到此处