根据 rowwise 函数 (dplyr) 过滤行

2023-12-24

您能帮我在下面的最后一个命令中使用过滤dplyr代替apply?

我试图解决发布的问题here https://twitter.com/delta_dc/status/585478403463245826/photo/1

library(gtools)
n <- 8
dt <- permutations(n+1,6,v=0:n,repeats.allowed=TRUE)

SmplMode <- function(x) {
  tabSmpl <- tabulate(x)
  SmplMode <- which(tabSmpl == max(tabSmpl))
  if (sum(tabSmpl == max(tabSmpl)) > 1)
    SmplMode <- 0
  return(SmplMode)
}

res <- dt[apply(dt,1,function(x) {
  y <- rep(c(1,2,3,4,5,6),c(x[1],x[2],x[3],x[4],x[5],x[6]))
  return(mean(y)==3 & diff(range(y))==4 & median(y)==3.5 & SmplMode(y)==4)
  }),]

操作与rowwise很慢,所以过滤掉SmplMode(y), mean(y), diff(range(y))早期条件在逐行操作的帮助下matrixStats包很好地加快了速度。以下在我的笔记本电脑上运行大约 0.4 秒,而您的原始解决方案和 @shadow 的解决方案运行大约 70 秒。

library(dplyr)
library(matrixStats)

df <- data.frame(dt)

df$m <- rowMaxs(dt)                                       #for SmplMode(y)  
S <- matrix(1:6, ncol=ncol(dt), nrow=nrow(dt), byrow=T)
Z <- S*(dt!=0)
Z[Z==0] <- NA
df$Range <- rowMaxs(Z, na.rm=TRUE)-rowMins(Z, na.rm=TRUE) #for diff(rang(y))
df$Mean <- rowSums(S*dt)/rowSums(dt)                      #for mean(y)

res <- df %>% 
  filter(X4  == m, (X1==m)+(X2==m)+(X3==m)+(X4==m)+(X5==m)+(X6==m)==1, 
         Range == 4, # range condition here
         Mean == 3) %>% #mean condition here
  rowwise() %>% 
  mutate(Med = median(rep(c(1,2,3,4,5,6), c(X1, X2, X3, X4, X5, X6)))) %>%
  filter(Med == 3.5) %>%   #median condition here 
  select(-m, -Range, -Mean, -Med) %>% # get rid of newcols
  as.matrix 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据 rowwise 函数 (dplyr) 过滤行 的相关文章

  • 闪亮的本地部署错误:输入字符串 1 无效 UTF-8

    我很惊讶地发现一个突然的错误 我的 ShinyApp 停止工作并出现未知错误 提示 输入字符串 1 无效 UTF 8 即使在昨天 该应用程序也可以正常运行 但是突然停止了 下面是我运行时的错误描述runApp gt runApp Liste
  • 如何计算满足条件的行数

    假设我有以下数据框 Data1 X1 X2 1 15 1 2 3 1 3 7 0 4 11 1 5 1 0 6 9 0 7 18 0 8 6 1 9 3 1 我想知道如何找到观察的总数X1大于 9 并且X2等于1 我想我需要使用sum 但我
  • 在 R 中查找 Windows 用户名

    有没有办法在 R 会话中获取当前的 Windows 用户名或 Windows 主目录 Thanks 抱歉 如果我错过了什么 但我找不到任何东西 你可以做 Sys getenv USERNAME Sys getenv HOME 如果你只是输入
  • 如果我有一个包含计数的表格,如何获得直方图/摘要统计数据? [复制]

    这个问题在这里已经有答案了 我习惯了像这样的观察向量c 1 1 1 3 4 我可以在上面看到汇总统计数据和绘制直方图等 但现在我发现自己拥有相同的数据 但采用如下压缩格式 value numObs 1 3 3 1 4 1 当数据以data
  • 挖泥机子集 (MuMIn) - 如果存在主效应,则必须包括交互作用

    我正在使用 dredge MuMIn 进行一些探索性工作 在此过程中 我想将两个变量设置为仅当它们之间存在相互作用时才允许一起出现 即它们不能仅作为主要效果一起出现 使用样本数据 我想挖掘模型 fm1 尽管它可能没有意义 如果变量 GNP
  • R 中数据帧的条件求和

    我正在努力将在 Excel 中进行的分析迁移到 R 因为我的数据集已达到 Excel 的限制 在 Excel 中 我有一个工作表 状态 它执行 sumifs 函数 对另一个工作表 成员 中 状态 中具有相同状态 周组合的值求和 我想在 R
  • 列表列表中出现的频率

    我有一个列表列表 其中每个列表都已排序 我想调查的是某个元素在特定位置出现了多少次 例如 pnc 曾两次出现在第二位 一次出现在第三位 我的数据结构如下 dput degree l list c schwab 0 pnc 0 0344827
  • 将角色分成几部分

    我观察到以下特征 l lt mod range1 seq m n 0 1 range2 seq 2 2 0 1 range3 seq 2 2 0 1 在 R 中使用正则表达式我想要拆分l在以下结构中 1 mod range1 seq m n
  • 将 dplyr 中的starts_with与部分列名称的向量一起使用

    我想使用 dplyr 选择与字符串向量匹配的某些列 one lt seq 1 10 two lt rnorm 10 three lt runif 10 1 2 four lt 10 1 df lt data frame one two th
  • R 中自定义函数的等高线图

    我正在使用一些自定义函数 我需要根据参数的多个值为它们绘制轮廓 这是一个示例函数 我需要画这样的等高线图 任何想法 Thanks 首先你构造一个函数 fourvar它将这四个参数作为参数 在这种情况下 您可以使用 3 个变量来完成此操作 其
  • R 比较所有列对的每个值[重复]

    这个问题在这里已经有答案了 我有一个 18x18 的数据框 我想将所有可能的列对相互比较 以便对于每对两列 18 行中的值相互比较 由于我的数据太大 无法放在这里 我写了一个小例子来说明到目前为止我所想到的 gt a lt c 1 18 g
  • 使管道工 API 可通过互联网使用

    我对 R 中的管道工包相当陌生 我有一个可以在我的计算机上本地运行的工作 API 我可以使用以下代码从网络上的实时 JS 应用程序访问它 r lt plumb my api code r r run host 0 0 0 0 port 80
  • rle 命令帮助

    我在使用 rle 命令时遇到了一些麻烦 该命令旨在找到参与者连续达到 8 个连续参与者的点 例如 如果 x lt c 0 1 0 1 1 1 1 1 1 1 1 1 我想返回值 11 感谢 DWin 我一直在使用这段代码 which rle
  • 在 R 中,如何让 PRNG 在平台之间给出相同的浮点数?

    在 R 4 1 1 中运行以下代码会在平台之间产生不同的结果 set seed 1 x lt rnorm 3 3 print x 22 0 83562861241004716 intel windows 0 8356286124100471
  • Quanteda 包,朴素贝叶斯:如何预测不同特征的测试数据?

    I used quanteda textmodel NB创建一个模型 将文本分类为两个类别之一 我将模型拟合到去年夏天的训练数据集上 现在 我今年夏天尝试使用它对我们在工作中收到的新文本进行分类 我尝试这样做并收到以下错误 Error in
  • 寻找一种有效的方法来计算两个表中间隔集之间的重叠数量?

    注意 为了方便起见 我使用上一篇文章中的示例数据集 假设有两个数据集 ref and map 他们是 ref lt data table space rep nI 3 t1 c 100 300 500 t2 c 150 400 600 id
  • ggplot多个时间不等的时间序列

    我知道有一些与时间序列和多个数据帧相关的已回答问题 但我似乎无法弄清楚这一点 我想绘制 4 个不同压力传感器与时间的时间戳数据 pa 列 我有来自同一实验的 4 个带时间戳的压力读数 dfs 然而 由于传感器故障和数据中的其他信号 传感器收
  • 如何将xtable对象放置在页面左侧

    问题 如何将 xtable 对象放置到页面左侧或如何全局禁用居中 我正在努力弄清楚如何将 xtable 对象放置在左侧 我有一个 Rmd 文件 所有这些都转到相关的 r 块 require xtable df lt data frame x
  • 基于 dplyr 中的向量创建新列

    With dplyr使用以下命令可以轻松创建新列mutate df lt data frame v1 1 3 v2 c a b c gt mutate df newcol NA v1 v2 newcol 1 1 a NA 2 2 b NA
  • 在r中的数据框中循环线性回归输出

    我有一个下面的数据集 我想在其中对每个国家和州进行线性回归 然后绑定数据集中的预测值 添加另外三列后的最终数据框 我已经对一个国家和一个地区进行了此操作 但想对每个国家和地区进行此操作 并将预测值 上限值和下限值放回到cbind的数据集中

随机推荐

  • Ruby 符号的存在是因为字符串是可变的且不可保留的吗?

    我使用 Ruby 已经大约一年了 有一个语言问题 符号是否是必要的 因为 Ruby 字符串是可变的且不被保留 例如 在 Java 中 字符串是不可变的且被保留的 所以 foo 在值和引用上总是等于 foo 并且它的值不能改变 在 Ruby
  • 使用 sklearn 对单变量时间序列进行聚类

    我有一个 panda DataFrame 我想从中对每一列进行聚类 我正在使用 sklearn 这就是我所拥有的 data pd read csv data csv data pd DataFrame data data data set
  • 两个python脚本之间的通信

    一个方法论问题 我有一个 主 python 脚本 它在我的系统上无限循环运行 我想偶尔向它发送信息 例如 json 数据字符串 以及一些其他 python 脚本 这些脚本稍后将由我自己或另一个程序启动并在发送字符串后立即结束 我不能在这里使
  • WPF如何使文本框在按回车键后失去焦点

    我创建了一些文本框 我希望用户在其中输入十进制值 在我使用过的每个应用程序中 当我在文本框中输入内容并按 Enter 键时 该值将被接受并且文本框会失去焦点 我怎样才能在我的应用程序中做到这一点 我知道通过关键事件应该相对容易做到这一点 但
  • CQRS(事件溯源):具有多个聚合的预测

    我有一个关于 CQRS 架构上涉及多个聚合的投影的问题 例如 假设我有两个聚合WorkItem and Developer并且以下事件按顺序发生 但不是立即发生 工作项已创建 工作项Id WorkItemTitleChanged workI
  • 将索引中的 meta_search gem 与现有的地理编码器 gem 搜索集成 (rails)

    我已经使用地理编码器实现了基于位置的搜索 但在集成 meta search gem 时遇到了问题 我正在尝试将 meta search 集成到我的object controller index允许用户按对象过滤和排序搜索结果 attribu
  • Twitter API 错误 215

    今天 我们发现我的一位客户的 Twitter 信息被破坏了 我尝试切换到使用新的 API 1 1 但出现以下错误 errors message Bad Authentication data code 215 即使使用他们自己的示例也会生成
  • 透明、点击、始终位于顶部的 JFrame [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 因此 我目前有一个透明的 JFram
  • TweenLite 没有动画

    我正在尝试使用 GreenSocks TweenLite for Javascript 制作一个简单的上边距动画 我已经使用过该库很多次了 但是由于某种原因 这次它不起作用 注意 onComplete 正在触发 但是无论我使用什么元素 我都
  • 内容安全策略:允许所有外部图像?

    我希望只允许来自本地服务器的脚本 但有某些例外 例如 jQuery 等 但可以灵活地加载外部图像 我知道有一个像这样的指令 Content Security Policy script src self https apis google
  • 将 ADT 和 Android sdk 工具更新到最新版本 22 后出现类未找到错误

    早些时候它工作正常 当我将我的 adt 和 android sdk 工具更新到最新版本 rev 22 时 我的应用程序停止工作 下面是 logcat 输出 请帮忙 05 16 16 36 01 922 E AndroidRuntime 12
  • 使用 Highcharts.js 的圆边仪表

    我正在使用 Highcharts 创建自定义仪表 窗格形状应如所附图片所示为圆形 想知道是否有人知道如何使用该库实现此布局 这是http jsfiddle net ao9fv2yh http jsfiddle net ao9fv2yh 我正
  • Git:忽略已编译的 Google Go

    我编译的 Go 代码在 Linux 上没有以扩展结尾 对于处理忽略 gitignore 文件中的这些内容有什么技巧吗 如果您正在使用go您可以使用构建代码的工具 o标志来指定输出文件名 因此您可以使用go build o bin elf然后
  • .NET 世界中的 ORM 和 SOA [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 根据我的经验 NET 的主要 ORM 框架 NHibernate http nhforge org Linq 转 Sql http msdn m
  • 为什么 Android 会截断我的 ActionBar 标题?

    在我的应用程序中 我更改了 ActionBar 中显示的每个片段的标题 当我第一次启动我的应用程序时 我收到了一个请求列表 因此我的标题是 我的请求 20 然后 当您单击该列表中的某个项目时 它会替换我的活动中的一个片段 并将标题设置为 操
  • 如何在子例程内引用哈希?

    我正在尝试使用模块的 tie 功能配置 Ini文件 http search cpan org shlomif Config IniFiles 2 65 lib Config IniFiles pm但我不知道如何引用子例程内部的哈希 如果我从
  • 查询或过滤最小字段值?

    示例 存储在索引中的文档表示测试分数和有关每个测试的元数据 test 1 user 1 score 100 meta other data test 2 user 2 score 65 meta other data test 3 user
  • Pylint 未在 VScode 中按预期运行

    当我通过 shell 运行时pylint pylint decorator py No config file found using default configuration Module decorator C 7 0 Unneces
  • EC2 无法解析私有 DNS 主机名

    我是 Amazon Web Service AWS 的新手 我刚刚创建了一个 VPC 和一个位于其中的子网 但是 我无法解析该子网中的任何主机名 当我停留在该子网中的任何主机中时 ec2 user ip 192 168 1 86 nsloo
  • 根据 rowwise 函数 (dplyr) 过滤行

    您能帮我在下面的最后一个命令中使用过滤dplyr代替apply 我试图解决发布的问题here https twitter com delta dc status 585478403463245826 photo 1 library gtoo