【问题标题】:Use loop or apply command to calculate U statistics in R使用循环或应用命令计算 R 中的 U 统计量
【发布时间】:2017-03-10 16:12:57
【问题描述】:

我正在考虑使用循环或应用命令来解决此问题,但失败了。

【问题讨论】:

  • ifelse(A>B, 1, 0)?此外,在一般意义上陈述问题(您可以通过 Google 搜索找到答案)、提供数据集并提供所需的输出是很有用的。
  • 您到底尝试了什么?它究竟是如何失败的?现在这不是一个特定的编程问题。
  • @AndrewPruet; MrFlick 我当时附上了描述。很抱歉造成误解。

标签: r statistics


【解决方案1】:

如果使用 data.table,可以借助 CJ.dt 函数 (https://stackoverflow.com/a/27347397/5744762) 找到解决方案。以下是您提供的有限描述,我认为您正在寻找的内容。

library(data.table)

#Create sample datasets
DT_tor <- data.table(ID = 1:100, time_tor = abs(rnorm(100)))
DT_bunny <- data.table(ID = 1:100, time_bunny = abs(rnorm(100)))

#CJ.dt function
CJ.dt = function(X,Y) {
  stopifnot(is.data.table(X),is.data.table(Y))
  k = NULL
  X = X[, c(k=1, .SD)]
  setkey(X, k)
  Y = Y[, c(k=1, .SD)]
  setkey(Y, NULL)
  X[Y, allow.cartesian=TRUE][, k := NULL][]
}

#Crossjoin two data.tables
DT_CJ <- CJ.dt(DT_tor, DT_bunny)

#Get a score for the tortoise and a score for the bunny
Score_tor <- DT_CJ[time_tor < time_bunny, .N]
Score_bunny <- DT_CJ[time_tor > time_bunny, .N]

【讨论】:

  • 非常感谢。但是如果我有 Hare 和 Tortoise 的现有数据,我应该如何更改?
  • @SuxiZheng 你应该像我问的那样提供问题中现有数据的样本......此外,还有大量资源可以弄清楚如何做你所要求的。您至少需要花一些精力自己解决问题。
  • 好的,我明白了!非常感谢!
  • @SuxiZheng 如果此解决方案适合您,请接受此作为答案,否则,请重述问题以便回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2011-03-05
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
相关资源
最近更新 更多