【问题标题】:get row name and column name on condition [duplicate]根据条件获取行名和列名[重复]
【发布时间】:2018-10-09 00:50:01
【问题描述】:

我有一个 df:

help<-data.frame(A=c(1,0.5,0.3,0.2), B=c(0.5,1,0.3,0.2), C=c(0.1,0.5,0.3,1))

我想创建一个嵌套循环来遍历 df 中的每个单元格并在满足条件时保存行名和列名 例如,如果值 > 0.7,则保存行名和列名。

键/值哈希类型变量在这里合适吗? (对不起,我还是 R 的初学者)。

目前我有:

    for (i in 1:nrow(help)) {
      for (j in 1:ncol(help)){
        if (help[i,j] >0.7){

          save rowname and colname to a variable?
 }
    }
       }

【问题讨论】:

  • 添加您的预期输出以使其更清晰。

标签: r


【解决方案1】:

你需要来自基础 R 的 which() -

which(help > 0.7, arr.ind = T)

     row col
[1,]   1   1
[2,]   2   2
[3,]   4   3

【讨论】:

  • 如何在其中添加“或”语句?我试过 which(help > 0.7 ||
  • which(help &gt; 0.7 | help &lt; -0.7, arr.ind = T)
  • 抱歉 - 有没有办法从原始 df 中提取这些内容。我尝试了 help[which(help > 0.7 | help
  • @zoe - help[which(help &gt; 0.7 | help &lt; -0.7, arr.ind = TRUE)] - 注意没有逗号。在此处搜索 [r] matrix indexing 会发现很多有用的类似问题。
  • @zoe - 是的。这确实是唯一的选择,因为一旦您开始提取单个单元格,它就不适合 data.frame 结构。
猜你喜欢
  • 1970-01-01
  • 2020-08-15
  • 2021-04-23
  • 1970-01-01
  • 2019-07-26
  • 2020-06-13
  • 2021-10-23
  • 1970-01-01
  • 2011-09-18
相关资源
最近更新 更多