忽略示例函数中的值或 NA

2023-12-13

我在 R 中有一个矩阵,我想从每一行中抽取一个随机样本。我的一些数据在 NA 中,但是在进行随机采样时,我不希望 NA 成为采样的选项。我将如何实现这个目标?

例如,

a <- matrix (c(rep(5, 10), rep(10, 10), rep(NA, 5)), ncol=5, nrow=5)
a
     [,1] [,2] [,3] [,4] [,5]
[1,]    5    5   10   10   NA
[2,]    5    5   10   10   NA
[3,]    5    5   10   10   NA
[4,]    5    5   10   10   NA
[5,]    5    5   10   10   NA

当我将样本函数应用于该矩阵以输出另一个矩阵时,我得到

b <- matrix(apply(a, 1, sample, size=1), ncol=1)
b

     [,1]
[1,]   NA
[2,]   NA
[3,]   10
[4,]   10
[5,]    5

相反,我不希望 NA 能够成为输出,并希望输出类似于:

b
     [,1]
[1,]   10
[2,]   10
[3,]   10
[4,]    5
[5,]   10

可能有更好的方法,但示例似乎没有任何与 NA 相关的参数,所以我只是编写了一个匿名函数来处理 NA。

apply(a, 1, function(x){sample(x[!is.na(x)], size = 1)})

基本上做你想做的事。如果你真的想要矩阵输出,你可以这样做

b <- matrix(apply(a, 1, function(x){sample(x[!is.na(x)], size = 1)}), ncol = 1)

编辑:您没有要求这样做,但我提出的解决方案在某些情况下确实会失败(主要是如果一行仅包含 NA)。

a <- matrix (c(rep(5, 10), rep(10, 10), rep(NA, 5)), ncol=5, nrow=5)
# My solution works fine with your example data
apply(a, 1, function(x){sample(x[!is.na(x)], size = 1)})

# What happens if a row contains only NAs
a[1,] <- NA

# Now it doesn't work
apply(a, 1, function(x){sample(x[!is.na(x)], size = 1)})

# We can rewrite the function to deal with that case
mysample <- function(x, ...){
    if(all(is.na(x))){
        return(NA)
    }
    return(sample(x[!is.na(x)], ...))
}

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

忽略示例函数中的值或 NA 的相关文章

  • 如何在 Caret 中绘制随机森林(护林员)树

    我生成了如下所示的随机森林树 并尝试绘制它 但出现错误 我在哪里犯了错误 我怎样才能以正确的方式绘制它 Actmodel lt train Activity Section Author data CB1 method ranger trC
  • 如何在 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 好的 所以列表是一个向量 显然 数
  • 将 ftransform 与折叠 R 包中的 fgroup_by 一起使用

    我正在尝试重现以下输出dplyr代码与R包裹collapse dplyr Code library tidyverse starwars gt select name mass species gt group by species gt
  • 使用 R 下载压缩数据文件、提取和导入数据

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

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 如何在 data.table 中分组后使用条件计算行数

    我有以下数据框 dat lt read csv s1 s2 v1 v2 a b 10 20 a b 22 NA a b 13 33 c d 3 NA c d 4 5 NA c d 10 20 dat gt A tibble 6 x 4 gt
  • picker输入字体或背景颜色

    我在闪亮的仪表板中使用 pickerInput 这很好 除了一个问题 背景颜色和字体颜色太相似 使得过滤器选择难以阅读 有什么办法可以改变背景或字体颜色吗 如果可能的话 我想继续使用 pickerInput 但如果有一个带有 selectI
  • 为什么 sapply 的缩放速度比样本大小的 for 循环慢?

    假设我想采用向量 X 2 1 N 并将 e 计算为每个元 素的指数 是的 我认识到最好的方法就是通过向量化 exp X 但这样做的目的是将 for 循环与 sapply 进行比较 我通过逐步尝试三种方法 一种使用 for 循环 两种以不同方
  • `dplyr::_join` 函数的命名向量“by”参数[重复]

    这个问题在这里已经有答案了 我正在写一个函数dplyr join两个数据框by不同的列 第一个数据帧的列名称动态指定为函数参数 我相信我需要使用rlang准引用 元编程 但未能找到可行的解决方案 我很感激任何建议 library dplyr
  • Lua C API:初始化结构体 C 中的变量矩阵

    我正在尝试使用 Lua C API 创建一个用户数据 并在其中关联一个元表 我将在其中收集矩阵 我无法得到的是如何将初始化矩阵的每个分量设置为零 我按照我的描述编译我的 Lua 模块 C 代码here https stackoverflow
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 从数据框中绘制多条平滑线

    我对 R 比较陌生 我正在尝试绘制从 csv 文件加载的数据框 数据由 6 列组成 如下所示 xval col1 col2 col3 col4 col5 第一列 xval 由一系列单调递增的正整数 例如 10 40 60 等 组成 其他列
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 要在子集中显示的非数字条目的维恩图

    我有以下数据框 SET1 SET2 SET3 par1 par2 par1 par2 par3 par2 par3 par4 par5 我想制作一个维恩图 其中所有这些 parX 元素都显示在各自的子集中 即作为标签 而不仅仅是重叠元素的数
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个

随机推荐

  • 将 Dataframe 传递给 Apply 函数 pandas 作为参数

    可以将 DataFrame 传递给apply像这样的功能 df2 df1 apply func axis 1 args df2 def func df1 df2 do stuff in df2 for each row of df1 ret
  • 在 Athena Aws 中连接行值

    我有 2 个列 可以说 id 和值 我想连接按 id col 分组的值 例如 我有 ID值 1 个 1b 2个 2b 我需要输出为 ID值 1a b 2a b 您可以使用array agg随后是一个array join select id
  • 如何在 Flutter 中使用查询访问 Cloud Firestore 的数组索引?

    我有田地users在文档中 该字段包含数组中的两个元素 我必须检查该数组中的特定两个值 首先 我用了array contains为此方法两次 但出现错误 如何访问 Cloud Firestore 中数组字段的索引 下面的代码是我的方法 但它
  • 存在寄存器溢出机制时,为什么会因为寄存器使用过多而无法启动内核呢?

    1 内核什么时候开始将寄存器溢出到本地内存 2 当没有足够的寄存器时 CUDA运行时如何决定不启动内核并抛出太多资源请求错误 多少个寄存器足以启动内核 3 既然存在寄存器溢出机制 即使没有足够的寄存器 难道不应该启动所有CUDA内核吗 1
  • 将信号连接到插槽会立即导致信号被发射

    我正在用 python 3 3 3 和 pyqt5 编写一个程序 我已经连接了很多信号和插槽 没有任何问题 这导致了一个问题 我的代码如下 def populateVendorAndModelComboBoxes self vendorCo
  • java 中的错误填充异常(RSA 解密)

    在解密 java 中的 RSA Base64 编码字符串时 我遇到一些问题 RSA 加密字符串是由 c Net 生成的 实际上 我使用java创建了公钥和私钥 然后我将公钥交换给 Net Team 他们使用公钥加密了一个字符串RSACryp
  • 复制模板电子表格脚本时,可在 Google 电子表格脚本中安装 onEdit 触发器

    我有一个复制模板电子表格的脚本 A 该电子表格模板中有一个脚本 B 模板电子表格和脚本已成功以编程方式复制并与其他人共享 模板脚本需要使用 onEdit 触发器来修改第三个电子表格 模板电子表格副本中的编辑将同步到第三个电子表格 简单触发器
  • Jquery可排序更新事件只能调用一次吗?

    我正在尝试使用 Jquery 和 Php 进行类别更改 我对此没有问题 我的问题是 当调用更新事件时 它返回 2 个结果 拖动父项有 1 个结果 删除父项有 1 个结果 我只想拨打失联父母的身份证 这是我的脚本 gallery ul sor
  • 如何使用 Cucumber 激活 Spring Boot 配置文件

    我正在寻找一种好方法来激活我的黄瓜测试的弹簧配置文件 黄瓜测试需要使用标记为以下内容的服务的存根版本 Profile test Component class FooServiceStub extends FooService 常规服务如下
  • 检查 pickle 转储的依赖关系

    假设我写了下面的代码 import pickle def foo return foo def bar return bar foo pickle dump bar open bar bin wb 此时 我有一个二进制转储 当然不依赖于fo
  • 如何将单击事件处理程序分配给绘制矩形的一部分?

    想象一下我使用 NET 图形类来绘制一个矩形 然后 我如何分配一个事件 以便如果用户单击某个点或某个点范围 就会发生某些事情 单击事件处理程序 我当时正在阅读 CLR via C 和事件部分 我从所读到的内容中想到了这个场景 这样的代码示例
  • matplotlib:使用 fill_ Between 制作彩色三角形

    我用下面的代码在空间中绘制了随机三角形 但我想用颜色填充三角形 我知道fill between matplotlib 中的函数 但是我不确定如何在下面的示例中实现它 import matplotlib pyplot as plt trian
  • Processbuilder 不重定向 StdOut

    是否可以将输出流重定向回进程 或者根本不重定向 背景故事 我正在尝试使用 processbuilder 启动可执行文件 确切地说是源专用服务器 srcds exe 使用 processbuilder 启动它的结果是 该可执行文件的控制台窗口
  • ASP.NET 多语言策略建议

    嗨 兄弟姐妹们 我想知道是否有人会分享他们认为使用 NET 启用动态多语言系统的最佳策略的经验 我有一位客户希望拥有一个半 MRP 系统来存储所有产品的材料和规格 这些信息稍后将用于其他模块 例如发票 采购 营销 提取信息用于打印目的 等等
  • 具有不同版本的多个上下文

    我正在尝试在多个 OpenGL 上下文之间共享列表 这是一个很棒的功能 因为它允许我执行并行渲染线程 但由于我使用的是 CreateContextAttribs 因此我提供了请求特定 OpenGL 实现的可能性 因此 可能会发生某些上下文正
  • 如何在Python中将字符串列表转换为复数? [复制]

    这个问题在这里已经有答案了 我正在尝试编写在 Python 中导入和导出复数列表的代码 到目前为止 我正在尝试使用 csv 模块 我已使用以下方法将数据导出到文件 spamWriter csv writer open data csv wb
  • Fullcalendar/获取 JSON feed(已编辑)

    当使用 ajax 从 JSON feed 获取数据时 我的 fullCalendar 对象中的事件未显示 这是一个问题 我相信 JSON 格式是正确的 因为 JSON aspx 的输出是 id 1 title TESTTITLE info
  • 如何将整个 SQL Server 2014 数据库转储到文件中,以便导入到 Postgres 数据库中?

    我有一个 SQL Server 2014 数据库 我需要从中转储表数据 没有索引 存储过程或其他任何内容 该转储需要 按原样 导入到 Postgres 9 3 数据库中 创建此类转储的正确命令行是什么 我必须承认 这更像是一个笑话 您应该按
  • C# - 从静态 main 调用函数

    我的问题可能非常基本 但我没有找到答案 我在program cs中编写了一个函数 获取2个字符串的public checkSomething 当我尝试从静态 main 调用此函数时 我收到这个错误 非静态字段 方法或需要对象引用 属性 ch
  • 忽略示例函数中的值或 NA

    我在 R 中有一个矩阵 我想从每一行中抽取一个随机样本 我的一些数据在 NA 中 但是在进行随机采样时 我不希望 NA 成为采样的选项 我将如何实现这个目标 例如 a lt matrix c rep 5 10 rep 10 10 rep N