0

我有一个以逗号分隔的 .csv 数据集(此处)。在这个数据集中,我有测量数据(“值”列),这些数据是由测量它的站点(“站点”)和拍摄日期考虑的。我要做的是对每个位置组合(“INLET EAST”/“SF EAST 1”、“INLET EAST”/“OUTLET EAST”等)的数据值进行成对 t 检验。我手动运行这些迭代没有问题,但我不知道如何告诉 t.test 函数如何根据常见的 Date 值配对每组数据。有人有任何指示吗?我也不反对任何关于如何在“站点”因素中简化迭代 t.test 过程的想法。感谢您在我来这里的几个月里提供的所有帮助。

对于链接不起作用的人,我的数据具有以下结构:

Date     Site        Slope    Location    Season    variable    value
15628    Inlet East  H        Inlet       W         TKN         1.92
15694    Inlet East  H        Inlet       W         TKN         0.98
15628    Outlet East L        Outlet      W         TKN         0.93

...ETC。

4

2 回答 2

2

这是一个如何对鸢尾花数据集的每个物种进行 t 检验的示例

library(plyr)
foo <- function(df) {
  t.test(df$Sepal.Length, df$Sepal.Width, data = df)
}
models <- dlply(iris, .(Species), foo)
models
于 2013-11-01T00:32:30.597 回答
0

这是功能形式的建议,我已将您的文件 data.csv 读取为“myData”。您可以根据需要更改自变量的名称(或编号)。在您的情况下,我将改进该功能,为分组数据的正态分布添加控件。

foo <- function(dataFrame, dataDepV, dataIndepV){
  if(is.character(dataDepV))   dataDepV   <- which(names(dataFrame)==dataDepV)
  if(is.character(dataIndepV)) dataIndepV <- which(names(dataFrame)==dataIndepV)
  allFactors <- unique(dataFrame[, dataIndepV])

  foo2 <- function(x)
  {
    group1 <- dataFrame[dataFrame[, dataIndepV] == x[1], dataDepV]
    group2 <- dataFrame[dataFrame[, dataIndepV] == x[2], dataDepV]
    myResult <- t.test(group1, group2)
    return(myResult)
  }

  myEndResult           <- combn(allFactors, 2, foo2)
  rownames(myEndResult) <- c("statistic","parameter","p.value","conf.int","estimate",
                             "null.value","alternative","method","data.name")
  colnames(myEndResult) <- combn(allFactors, 2, function(x) paste(x[1],"vs.",x[2]))
  return(myEndResult)

}

A <- foo(dataFrame=myData, dataDepV="value", dataIndepV="Site")

View(A) # should include the result dataframe that you wanted

查看(一)

于 2013-11-01T10:40:51.773 回答