Zadanie do wykonania
Zadanie wykonaj w kilku etapach:
- Zapisz “dane” jako obiekt tibble pod inną nazwą, np. dane2. Porównaj je.
dane2 <-tibble(dane)
dane2
## # A tibble: 985 × 12
## street city zip state beds baths sq__ft type sale_…¹ price latit…²
## <chr> <chr> <int> <chr> <int> <int> <int> <chr> <chr> <int> <dbl>
## 1 3526 HIGH ST SACR… 95838 CA 2 1 836 Resi… Wed Ma… 59222 38.6
## 2 51 OMAHA CT SACR… 95823 CA 3 1 1167 Resi… Wed Ma… 68212 38.5
## 3 2796 BRANCH… SACR… 95815 CA 2 1 796 Resi… Wed Ma… 68880 38.6
## 4 2805 JANETT… SACR… 95815 CA 2 1 852 Resi… Wed Ma… 69307 38.6
## 5 6001 MCMAHO… SACR… 95824 CA 2 1 797 Resi… Wed Ma… 81900 38.5
## 6 5828 PEPPER… SACR… 95841 CA 3 1 1122 Condo Wed Ma… 89921 38.7
## 7 6048 OGDEN … SACR… 95842 CA 3 2 1104 Resi… Wed Ma… 90895 38.7
## 8 2561 19TH A… SACR… 95820 CA 3 1 1177 Resi… Wed Ma… 91002 38.5
## 9 11150 TRINI… RANC… 95670 CA 2 2 941 Condo Wed Ma… 94905 38.6
## 10 7325 10TH ST RIO … 95673 CA 3 2 1146 Resi… Wed Ma… 98937 38.7
## # … with 975 more rows, 1 more variable: longitude <dbl>, and abbreviated
## # variable names ¹sale_date, ²latitude
#dane w postaci tibble są łatwiejsze do odczytania, tabela jest skonstruowana w taki sposób, aby od razu było widać jakie dane zawiera, bez printowania wszystkich rekordów
- Które ze zmiennych przekształcone powinny być w czynnik (factor)?
#beds, baths, type.
- Cena nieruchomości (price) jest obecnie integer. Czy to odpowiednie?
#Wydaje mi się że tak, nie przeszkadza w przeprowadzaniu operacji.
- Napisz własną funkcję, która wykonywać będzie standaryzowanie zmiennych.
standaryzacja <- function(input){
for(i in 1:ncol(input)) { # for-loop over columns
if (is.numeric(input[ , i])){
input[ , i] <- scale(input[ , i])
}
}
return(input)
}
output1 = standaryzacja(dane)
- Utwórz nową zmienną “cena” w tibble “dane2”, która będzie zestandaryzowaną price, korzystając z własnej funkcji.
#cena <- standaryzacja(dane$price)
dane2$cena <- standaryzacja(dane)$price
print(dane2)
## # A tibble: 985 × 13
## street city zip state beds baths sq__ft type sale_…¹ price latit…²
## <chr> <chr> <int> <chr> <int> <int> <int> <chr> <chr> <int> <dbl>
## 1 3526 HIGH ST SACR… 95838 CA 2 1 836 Resi… Wed Ma… 59222 38.6
## 2 51 OMAHA CT SACR… 95823 CA 3 1 1167 Resi… Wed Ma… 68212 38.5
## 3 2796 BRANCH… SACR… 95815 CA 2 1 796 Resi… Wed Ma… 68880 38.6
## 4 2805 JANETT… SACR… 95815 CA 2 1 852 Resi… Wed Ma… 69307 38.6
## 5 6001 MCMAHO… SACR… 95824 CA 2 1 797 Resi… Wed Ma… 81900 38.5
## 6 5828 PEPPER… SACR… 95841 CA 3 1 1122 Condo Wed Ma… 89921 38.7
## 7 6048 OGDEN … SACR… 95842 CA 3 2 1104 Resi… Wed Ma… 90895 38.7
## 8 2561 19TH A… SACR… 95820 CA 3 1 1177 Resi… Wed Ma… 91002 38.5
## 9 11150 TRINI… RANC… 95670 CA 2 2 941 Condo Wed Ma… 94905 38.6
## 10 7325 10TH ST RIO … 95673 CA 3 2 1146 Resi… Wed Ma… 98937 38.7
## # … with 975 more rows, 2 more variables: longitude <dbl>, cena <dbl[,1]>, and
## # abbreviated variable names ¹sale_date, ²latitude
- Wykreśl cenę oraz price na wykresach ramkowych obok siebie na jednym ekranie. Różnice?
par(mfcol=c(1,2))
plot(1:nrow(dane2),dane2$price, xlab = "no. of house", ylab = "price")
plot(1:nrow(dane2),dane2$cena, xlab = "no. of house",ylab = "price stand")
Standaryzacja nie zmieniła kształtu wykresu, gdyż nie zmieniła stosunku między cenami.