Как выполнить тест ANOVA в R с данными в этом формате?

Я немного запутался. У меня есть данные в следующем формате (извините, это довольно уродливо), которые были импортированы в R:

введите здесь описание изображения

Anova предназначен для использования следующим образом: aov(группа~измерение, данные = мои данные)

Однако я изо всех сил пытаюсь заставить свои данные соответствовать этому формату. Любая помощь будет принята с благодарностью.


person Kingteeb    schedule 26.11.2013    source источник
comment
Это называется преобразованием из широкого в длинный. Здесь много вопросов по этому поводу; см., например, Изменить форму данных с широких на длинные?.   -  person Aaron left Stack Overflow    schedule 26.11.2013
comment
Кроме того, внимательно прочитайте этот вопрос. Скриншоты ваших данных — один из самых надежных способов не получить помощь по StackOverflow.   -  person joran    schedule 26.11.2013


Ответы (2)


Вы, вероятно, начнете с чтения ваших данных из файла CSV, который у вас есть:

df <- read.csv("FLOCKSIZES.csv")

В следующем примере показано, как вы можете получить данные в нужной вам форме. Обратите внимание, что в начале этого примера генерируются случайные данные, потому что вы еще не предоставили никаких данных. Если бы вы использовали read.csv, как в приведенном выше примере, вы могли бы пропустить первую часть и сразу продолжить с того места, где измерения объединяются:

# Some random data similar to what you'd get from read.csv.
numSamples <- 50
df <- data.frame(time=1:numSamples, 
                 group1=rnorm(numSamples),
                 group2=rnorm(numSamples),
                 group3=rnorm(numSamples))

# Concatenate all measurements.
measurements <- c(df$group1, df$group2, df$group3)

# Create a vector that encodes the corresponding group (1 to 3) for each measurement.
# Note: Here we assume that we have the same number of samples from every group.
groups <- do.call(c, lapply(1:3, function(i) rep(i, numSamples)))

# So that you get an idea of what these vectors look like:
print(measurements)
print(groups)

# And here we go:
aov(groups ~ measurements)
person fotNelton    schedule 26.11.2013

Прочитайте свои данные в R с помощью пакета csv и преобразуйте их из широкого формата в длинный с помощью функции плавления из пакета reshape2.

person annndrey    schedule 26.11.2013
comment
Это комментарий, а не ответ. - person Thomas; 26.11.2013