Skip to content

Instantly share code, notes, and snippets.

@mgechev
Created April 14, 2011 08:44
Show Gist options
  • Save mgechev/919141 to your computer and use it in GitHub Desktop.
Save mgechev/919141 to your computer and use it in GitHub Desktop.
Statistics - 14.04.2011
data.frame; #създава нов (наш си) data frame
weight = c(150,135,210,140);
heigth = c(65,61,70,65);
gender = c("Fe", "Fe", "M", "Fe");
study = data.frame(weight, heigth, gender); #прави data.frame с име "study"
study;
study = data.frame(w = weight, h = heigth, g = gender); #имена на колоните
row.names(study) <- c("Mary", "Alice", "Bob", "Judy"); #имена на редовете
study;
rm(weight); #изчистваме старото копие
weight;
attach(study);
w; #
#Масив
#------
#колони за променливите
#редове за експеримент полета
#[] взимаме даден елемент, ако го оставим празно (т.е. без да специфицираме
#ред или стълб) взимаме целия ред или стълб в зависимост от това, дали сме
#оставили първите или вторите скоби празни
study[ , 'weight'];
study[ , 'w']; #всички редове на weight
study[ , 1]; #всички редове на първата променлива
study[ , 1:2];
study['Mary', ]; #ред "Mary" с всички колони
study['Mary', 'w']; #изкарва weight за Mary
#$ [[]] - да достигнем списък
study$w;
study[['w']];
study[[1]]; #извежда данните на 1-та променлива (т.е. weight)
study[study$g == 'Fe', ]; #извежда информация за пол жена
#Маниполиране на dataframe
#stack, unstack
data(PlantGrowth);
PlantGrowth;
attach(PlantGrowth);
weight.ctrl = weight[group == "ctrl"];
unstack(PlantGrowth); #прави dataframe с променливи съответстващи на имената на факторите
boxplot(unstack(PlantGrowth));
#Model formula в R
boxplot(weight ~ group);
#weight ~ group показва теглото спрямо стойностите на group, вляво е отклика, а в дясно предиктора
#това (наименованията) важи само за случаите, в които имаме 2 променливи
#Y, X1, X2
#########################################################################
#______________________________________________________________________
#| Формула | Значение |
#|______________|______________________________________________________|
#| | |
#| Y~X1 | Y моделирано по X1 |
#| Y~X1+X2 | Y моделирано по X1 и X2, като многомерна регресия |
#| Y~X1*X2 | Y моделирано по X1, X2 и X1*X2 |
#| (Y~(X1+X2)^2)| two-way interactions |
#| Y~X1+I(X2^2) | Y е моделирано по X1 и X2^2 |
#| Y~X1|X2 | Моделирано по X1 при условие X2 |
#|______________|______________________________________________________|
#########################################################################
table(x, y);
table(x, y, z) #x спрямо y за всяка стойност на z (двумвена таблица)
library("MASS");
data(Cars93);
attach(Cars93);
price = cut(Price, c(0, 12, 20, max(Price)));
levels(price) = c("cheap", "okay", "expensive"); #разделя price на три вида
mpg = cut(MPG.highway, c(0, 20, 30, max(MPG.highway)));
levels(mpg) = c("gas guzzler", "okay", miser);
table(Type); #таблица според вида на автомобила
table(price, Type); #таблица според вида и цената
table(price, Type, mpg); #според вида и цената за всяка стойност на mpg
#xtabs - Create a contingency table (optionally a sparse matrix) from cross-classifying factors, usually contained in a data frame, using a formula interface.
#ftable - Create ‘flat’ contingency tables.
#barplot - всяка колона като променлива
barplot(table(price, Type), beside = TRUE); #цената според различния тип
barplot(table(Type, price), beside = TRUE); #типа според различната цена
#boxplot(x, y, z); рисува side-by-side boxplot
#boxplot(df); df - data frame
#boxplot(y~x); приема и формула, като аргумент
#10 boxplot-а, с математическо очакване 0 и отклонение 1
y = rnorm(1000);
f = factor(rep(1:10, 100)); #дава числата от 1 до 10, 100 пъти
boxplot(y~f, main = "Boxplot of normal data with model notation"); #прави boxplot за y за всяко ниво на фактора f
#30 и под 30 са малко данни, добре е stripcharts да се използват за малко данни
x = rnorm(100);
y = factor(rep(1:10, 100));
stripchart(x~y); #stripchart(x, y) - НЕ РАБОТИ!!! Може да се използва и с data frame
#x - предиктор, а y и z - отклик
#pch - plot character (една графика, но с различни характеристики)
#points(x, z, pch = "2"); - графика с триъгълници
data("ToothGrowth");
attach(ToothGrowth);
plot(len~dose, pch = as.numeric(supp));
tmp = levels(supp);
legend = levels(locator(1), legend = tmp, pch = 1:length(tmp)); #дава грешка
#триъгълника е хапче
#кръгчето е портокалов сок
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment