Объединить несколько тестов TukeyHSD в одну таблицу?

У меня есть несколько файлов csv, похожих на следующие.

Library Parameter1
A       3
A       2
A       5
B       2
B       1
B       9
C       4
C       2
C       8

На самом деле это выглядит так: Таблица CSV

Каждый файл .csv назван в честь химического параметра, такого как в данном случае «logtPSA.csv». Заголовки, как вы можете сказать, «Библиотека» и «Значение». У меня есть 4 разные библиотеки: FDA, SMMRNA, VD_SM и VD_MV.

Я выполнял тесты ANOVA и тесты TukeyHSD для всех из них, но R не дает их в формате, в котором результаты разделены на ячейки, поэтому я могу просто скопировать и вставить в Excel, поэтому, если бы я сделал это вручную, это было бы стать довольно утомительным.

Мне было интересно, есть ли какой-нибудь способ написать функцию, которая будет просматривать все мои файлы по одному, выполнять тест и выводить все это в две аккуратные таблицы (1 для ANOVA, 1 для TukeyHSD).


person Ren Zhang    schedule 18.07.2016    source источник


Ответы (1)


Есть несколько способов сделать это, это только один:

Импортировать все файлы данных

setwd("C:/Users/VANBE/Desktop")
files = dir(".", pattern = ".csv")
files.dir = paste(getwd(),"/" ,files,sep="")
load = lapply(files.dir, read.csv2,header=T,sep=",",dec=".")
names(load)=unlist(strsplit(files,".csv")) # not truly necesary

Пример того, как это может выглядеть

load = list(FILENAME1=data.frame(x=1699:1722,Library=c(rep("FDA",18),rep("SMMRMA",6)),logtPSA=rnorm(1.5,1,24)),
            FILENAME2=data.frame(x=1699:1722,Library=c(rep("FDA",18),rep("SMMRMA",6)),logtELSE=rnorm(2,1,24)))

Поместите результаты в фрейм данных

load= lapply(load, function(x) {names(x) = c("number","library","parameter");  return(x) }) # make sure columnnames of al items are identical

f.AN = function(x){out=aov(parameter ~ library,x)
AN=summary(out)[[1]]}
f.TU = function(x){out=aov(parameter ~ library,x)
TU=TukeyHSD(out)[[1]]}

AN = do.call("rbind",lapply(load,f.AN))
TU = do.call("rbind",lapply(load,f.TU))
person Wave    schedule 19.07.2016
comment
Привет, Волна, спасибо за ответ. Я дошел до первого раздела вашего ответа, прежде чем не смог понять, как заменить вещи, чтобы они работали конкретно на меня. Я обновил свой вопрос, добавив более конкретную информацию, поэтому я надеялся, что вы сможете мне немного помочь? Я могу, конечно, предоставить любую дополнительную информацию, необходимую. Я все еще очень новичок в R, поэтому я не был уверен, правильно ли и эффективно называю все свои файлы и заголовки. Спасибо! - person Ren Zhang; 19.07.2016