Страница 1 из 1
					
				Расчёт показателей с привязкой к фактору
				Добавлено: 05 июл 2013, 17:24
				 ymr3R9Jge
				Вопрос в следующем: имеем таблицу с результатами опробования скважин (пример прилагается). Нужно получить производную таблицу, которая будет содержать номера скважин и средние содержания химических элементов (т.е. для каждой скважины должна остаться одна строка - со средними значениями).
			 
			
					
				Re: Расчёт показателей с привязкой к фактору
				Добавлено: 05 июл 2013, 20:33
				 Максим Дубинин
				см.
aggregate
tapply
			 
			
					
				Re: Расчёт показателей с привязкой к фактору
				Добавлено: 06 июл 2013, 14:40
				 Иван Стрельников
				Код: Выделить всё
#skv--исходная таблица
skv.list<-split(skv,as.factor(skv[,1]))
skv.res<-NULL
for(i in (1:length(skv.list))){
	skv.res<-rbind(skv.res,apply(skv.list[[i]],2,mean))
}
 
			
					
				Re: Расчёт показателей с привязкой к фактору
				Добавлено: 06 июл 2013, 19:58
				 ymr3R9Jge
				Максим Дубинин писал(а):см.
aggregate
tapply
Извиняюсь за запоздалый ответ... Всё до примитива просто! Для приведённой в качестве примера таблицы:
Код: Выделить всё
>attach(skv_forum)
>skv_forum.mean<- aggregate(skv_forum, by=list(Num_skv), FUN=mean, na.rm=FALSE)
Если сортировку нужно провести ещё по какому-нибудь фактору (например - по типу пород в скважине) - тогда этот фактор через запятую нужно добавить в список: by=list(Num_skv, poroda).
 
			
					
				Re: Расчёт показателей с привязкой к фактору
				Добавлено: 07 июл 2013, 06:47
				 gamm
				ymr3R9Jge писал(а):>attach(skv_forum)
а вот этого никогда не делайте, если не хотите получить головную боль. После attach имена (из таблицы) попадают в глобальное пространство имен, и перекрывают системные. При совпадении имен вызываемые программы из пакетов начнут работать неправильно, ладно если просто ошибку выдадут, а то могут и ерунды насчитать.
 
			
					
				Re: Расчёт показателей с привязкой к фактору
				Добавлено: 15 июл 2013, 08:24
				 ymr3R9Jge
				gamm писал(а):а вот этого никогда не делайте, если не хотите получить головную боль...
Да, всё прекрасно работает и с непосредственной ссылкой на переменные:
Код: Выделить всё
>skv_forum.mean<- aggregate(skv_forum, by=list(skv_forum$Num_skv), FUN=mean, na.rm=FALSE)