【问题标题】:Deriving a contingency truth table from two columns with yes and no values in R [duplicate]从R中具有是和否值的两列导出列联真值表[重复]
【发布时间】:2018-11-18 23:03:15
【问题描述】:

我一直在尝试将我在 R 中的数据操作为类似于 How to Find False Positive Prediction Count using R Script 的内容,但由于缺乏最小示例而很难做到。我的数据框(称为 info)是这样的:

obs sim 不 不 不 不 不 不 不 是 是 是 是 是 不 不 不 不 不 不 不 不 不 是 是 不 是 不 是 是 是 是 是 是 是

我想要得到的是一个真值表,它在任一列中删除任何带有 NA 的行,结果如下:

   obs  sim 
     yes no  
yes    6 2  
 no    1 7 

【问题讨论】:

  • 无法区分 obs 列。你能格式化代码吗
  • 你能把我链接到一个表格编辑器吗?我一直在这里寻找一个
  • 可能你需要table(info[complete.cases(info),])
  • table 无论如何都会自动删除 NA 值。所以table(dat$sim, dat$obs) 我认为应该开箱即用。

标签: r truthtable


【解决方案1】:

我们可以使用complete.cases 创建一个逻辑索引,如果一行中有任何NA 将给出FALSE 来对行进行子集化,然后应用table

table(info[complete.cases(info),])
#    sim
#obs    no yes
#  no    7   2
#   yes  1   6

或者na.omit

table(na.omit(info))

数据

info <- structure(list(obs = c("no", "no", "no", "no", "yes", "yes", 
 "yes", "no", "no", "no", "no", "yes", NA, "no", "yes", "yes", 
 "yes"), sim = c("no", "no", "no", "yes", "yes", "yes", "no", 
 "no", "no", "no", "no", "yes", "yes", "yes", "yes", "yes", "yes"
 )), class = "data.frame", row.names = c(NA, -17L))

【讨论】:

  • 只是table(info) 给出了相同的结果,因为我认为useNA 参数。
  • 需要特别努力才能让 NA 成为问题。
【解决方案2】:

这将向您展示如何将模棱两可的数据表示重新组合成您的真相的一个可能版本。

dat <- scan(text=" no no no no no no no yes yes yes yes yes yes no no no no no no no no no yes yes NA yes no yes yes yes yes yes yes yes", what="")
Read 34 items
mdat <- matrix( dat, ncol=2, dimnames=list(NULL, c("obs","sim")))

 mdat
#------------
      obs   sim  
 [1,] "no"  "no" 
 [2,] "no"  "no" 
 [3,] "no"  "no" 
 [4,] "no"  "no" 
 [5,] "no"  "no" 
 [6,] "no"  "yes"
 [7,] "no"  "yes"
 [8,] "yes" NA   
 [9,] "yes" "yes"
[10,] "yes" "no" 
[11,] "yes" "yes"
[12,] "yes" "yes"
[13,] "yes" "yes"
[14,] "no"  "yes"
[15,] "no"  "yes"
[16,] "no"  "yes"
[17,] "no"  "yes"

 ?table
 table(mdat[,1],mdat[,2], dnn =list("obs","sim"))
#--------------
     sim
obs   no yes
  no   5   6
  yes  1   4

table 函数会自动从计算中删除 NA 行。

【讨论】:

    猜你喜欢
    • 2012-11-15
    • 2016-05-18
    • 1970-01-01
    • 2017-12-20
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    相关资源
    最近更新 更多