为矩阵的每一行查找 5 个连续的数字 >= 3

2023-11-29

我有以下矩阵

mdat <- matrix(c(6,2,4,4,'*',5,1,6,'*',2,1,5,1,3,3,5,4,'*',5,'*',1,'*',4,'*',2,2,4,3,4,4,4,'*',4,3,3,1,1,3,2,3,3,3,3,3,2,2,'*','*',2,1,2,2,2,2,2,1,1,1,1,1,'*',1,1,1,1,1 ),nrow = 6, ncol = 11, byrow = TRUE)



[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] "6"  "2"  "4"  "4"  "*"  "5"  "1"  "6"  "*"  "2"   "1"  
[2,] "5"  "1"  "3"  "3"  "5"  "4"  "*"  "5"  "*"  "1"   "*"  
[3,] "4"  "*"  "2"  "2"  "4"  "3"  "4"  "4"  "4"  "*"   "4"  
[4,] "3"  "3"  "1"  "1"  "3"  "2"  "3"  "3"  "3"  "3"   "3"  
[5,] "2"  "2"  "*"  "*"  "2"  "1"  "2"  "2"  "2"  "2"   "2"  
[6,] "1"  "1"  "1"  "1"  "1"  "*"  "1"  "1"  "1"  "1"   "1"  

我试图为每行找到 5 个连续数字 >= 3 并将初始数字和最终数字的位置写入 txt 文件,在示例中,第 3 行和第 4 行分别有从第 5 列和第 7 列开始的 5 个数字,应该:

initial = [3,5] final [3,9]
initial = [4,7] final [4,11]

以下解决方案几乎可以工作,但错过了第一个识别行(第 3 行)的 ini 和最终值

element<-0
ini<-1
final<-1
consecutives<-0
zz<-file("C:/consecutives.txt","w")
for (i in 1:6){
for (j in 1:11) {
 if (b[i,j] != "*"){
    element<-as.integer(b[i,j])
       if (element>=3)
     {ini<-j
          consecutives<-consecutives+1
      row<-i 
      if (consecutives>=5){
         final<-j
        writeLines(paste("element",toString(element), "Row", toString(row),  "ini", toString(ini),"final",toString(final)) ,con=zz,sep = "\n")
     }

      }


  }
else consecutives<-0

}

}

close(zz)

如果使用模式 numeric 和NA代替"*":

 mdat <- matrix(c(6,2,4,4,NA,5,1,6,NA,2,1,5,1,3,3,5,4,NA,5,NA,1,NA,4,NA,2,2,4,3,4,4,4,NA,4,3,3,1,1,3,2,3,3,3,3,3,2,2,NA,NA,2,1,2,2,2,2,2,1,1,1,1,1,NA,1,1,1,1,1 ),nrow = 6, ncol = 11, byrow = TRUE)

然后你可以使用rle找到序列TRUEx >= 3:

apply(mdat, 1, function(x) {
  r <- rle(x >= 3)
  w <- which(!is.na(r$values) & r$values & r$lengths > 4)
  if (length(w) > 0) {
    before <- sum(r$lengths[1:(w[1]-1)])
    c(before+1,before+ r$lengths[w[1]])
  } else
    NULL
})

[[1]]
NULL

[[2]]
NULL

[[3]]
[1] 5 9

[[4]]
[1]  7 11

[[5]]
NULL

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

为矩阵的每一行查找 5 个连续的数字 >= 3 的相关文章

  • Rsolnp:在 cbind(temp, funv) 中:结果的行数不是向量长度的倍数(arg 1)

    我是 stackoverflow 的新手 搜索了很多 但找不到我的问题的答案 我正在尝试使用优化包 Rsolnp 来最小化以下问题 尽管求解器为我提供了解决方案 但每次运行代码时我都会收到以下警告消息 警告消息 1 在 cbind temp
  • R 中带有文件名的 For 循环

    我有一个文件列表 例如 nE pT sbj01 e2 2 csv nE pT sbj02 e2 2 csv nE pT sbj04 e2 2 csv nE pT sbj05 e2 2 csv nE pT sbj09 e2 2 csv nE
  • LaTex 中与 knit 和 xtable 交叉引用的问题

    我目前正在与 R Studio 合作 使用 LaTex 中的 R knitr 生成 PDF 文档 在这些文档中 我想在文本中引用的表格中展示我的部分结果 我使用 R 中的 xtable 包生成这些表 它运行良好并为我提供了正确的表 到目前为
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • 如何在R中计算文本中的句子数?

    我使用 R 将文本读入readChar 功能 我的目的是测试文本句子中字母 a 出现次数与字母 b 出现次数一样多的假设 我最近发现了 stringr 包 它帮助我对文本做很多有用的事情 例如计算字符数以及整个文本中每个字母出现的总数 现在
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • 将 Instagram/youtube 嵌入 Shiny R 应用程序

    我想通过点击图表来播放 Instagram 或 Youtube 视频 例如显示异常值等 到目前为止 明确告诉 Shiny 视频内容是有效的 require shiny require ggplot2 data df lt data fram
  • .wav 文件长度/持续时间,无需读入文件

    有没有办法提取有关 wav 文件长度 持续时间的信息 而无需在 R 中读取文件 我有数千个这样的文件 如果我必须阅读每个文件才能找到其持续时间 那将需要很长时间 Windows 文件资源管理器为您提供了打开 长度 字段的选项 并且您可以查看
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这

随机推荐