1. úloha
x = 2
formula = c("(x^8)^1/3", "Logx 8", "Ln(10^3x/2)")
vypocet = c(round((x^8)^1/3, digits = 3), round(log(8, base = x), digits = 3), round(log((10^3*x)/2), digits = 3))
data.frame(formula, vypocet)
## formula vypocet
## 1 (x^8)^1/3 85.333
## 2 Logx 8 3.000
## 3 Ln(10^3x/2) 6.908
2. úloha
x <- -5:5
plot(x, (-2*x)/3, type="l", ylab = "")
lines(x, x+1)
A<- rbind(c(2, 3),
c(-1, 1))
B<- c(0, 1)
solve(A, B)
## [1] -0.6 0.4
3. úloha
v <- vector(mode="numeric", length = 20)
for(i in 1:20){
v[i] <- (2*i)^(1/i)
}; v
## [1] 2.000000 2.000000 1.817121 1.681793 1.584893 1.513086 1.457916 1.414214
## [9] 1.378716 1.349283 1.324459 1.303220 1.284825 1.268728 1.254512 1.241858
## [17] 1.230515 1.220285 1.211007 1.202550
sum(v)
## [1] 28.73898
plot(v)
4. úloha
dat <- data.frame(mtcars); dat
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
5. úloha
str(dat)
## 'data.frame': 32 obs. of 11 variables:
## $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
## $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
## $ disp: num 160 160 108 258 360 ...
## $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
## $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
## $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
## $ qsec: num 16.5 17 18.6 19.4 17 ...
## $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
## $ am : num 1 1 1 0 0 0 0 0 0 0 ...
## $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
## $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
dat[1:5,]
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
6. úloha
kml <- vector(mode="numeric", length = 32)
for(i in 1:32){
kml[i] = dat[c(i), c(1)]*0.42514
};dat[c(1:32), c(1)]; kml
## [1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
## [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
## [31] 15.0 21.4
## [1] 8.927940 8.927940 9.693192 9.097996 7.950118 7.695034 6.079502
## [8] 10.373416 9.693192 8.162688 7.567492 6.972296 7.354922 6.462128
## [15] 4.421456 4.421456 6.249558 13.774536 12.924256 14.412246 9.140510
## [22] 6.589670 6.462128 5.654362 8.162688 11.606322 11.053640 12.924256
## [29] 6.717212 8.375258 6.377100 9.097996
dat$kml <- kml
dat
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
## kml
## Mazda RX4 8.927940
## Mazda RX4 Wag 8.927940
## Datsun 710 9.693192
## Hornet 4 Drive 9.097996
## Hornet Sportabout 7.950118
## Valiant 7.695034
## Duster 360 6.079502
## Merc 240D 10.373416
## Merc 230 9.693192
## Merc 280 8.162688
## Merc 280C 7.567492
## Merc 450SE 6.972296
## Merc 450SL 7.354922
## Merc 450SLC 6.462128
## Cadillac Fleetwood 4.421456
## Lincoln Continental 4.421456
## Chrysler Imperial 6.249558
## Fiat 128 13.774536
## Honda Civic 12.924256
## Toyota Corolla 14.412246
## Toyota Corona 9.140510
## Dodge Challenger 6.589670
## AMC Javelin 6.462128
## Camaro Z28 5.654362
## Pontiac Firebird 8.162688
## Fiat X1-9 11.606322
## Porsche 914-2 11.053640
## Lotus Europa 12.924256
## Ford Pantera L 6.717212
## Ferrari Dino 8.375258
## Maserati Bora 6.377100
## Volvo 142E 9.097996
Neviem prečo to tu tak vyzerá, v konzole je všetko v poriadku (priložím samostatnú fotku)
7. úloha
aut <- vector(mode="logical", length = 32)
aut <- as.logical(dat[c(1:32), c(8)])
aut
## [1] FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE
## [25] FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE
autopriem <- 0
mechapriem <- 0
autok <- 0
mechak <- 0
for(i in 1:32){
if(aut[i]==TRUE) {autopriem <- autopriem + dat[c(i), c(12)]
autok <- autok+1}
else{mechapriem <- mechapriem + dat[c(i), c(12)]
mechak <- mechak+1
}
}
autok; autopriem
## [1] 14
## [1] 146.1631
mechak;mechapriem
## [1] 18
## [1] 127.1594
autopriem <- autopriem/autok; autopriem
## [1] 10.44022
mechapriem <- mechapriem/mechak; mechak
## [1] 18
8. úloha
for(i in 1:32){
if(dat[c(i), c(10)] == 5 & dat[c(i), c(6)]<3) {print(dat[c(i), c(1:12)])}
}
## mpg cyl disp hp drat wt qsec vs am gear carb kml
## Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2 11.05364
## mpg cyl disp hp drat wt qsec vs am gear carb kml
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2 12.92426
## mpg cyl disp hp drat wt qsec vs am gear carb kml
## Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6 8.375258
9. úloha
prevod <- function(x, impunit, toSI){
switch(impunit, "mile" = x*1.6, "liter" = x/3.78541178, "gallon" = x*3.78541178, "km" = x/1.6, "inch" = x * 0.254, "dm" = x / 0.254, "pound" = 0.45359237*x, "kg" = 0.45359237/x)
}
prevod(16, "km", TRUE)
## [1] 10
prevod(15, "gallon", TRUE)
## [1] 56.78118
prevod(5, "inch", TRUE)
## [1] 1.27
prevod(16, "kg", FALSE)
## [1] 0.02834952
prevod(30, "liter", FALSE)
## [1] 7.925162
10. úloha
for(i in 1:32){
dat[c(i), c(5)]<-dat[c(i), c(5)]*1000
}
timeswt <- function(x) x*1000
dat[c(1:32), c(6)] <- sapply(dat[c(1:32), c(6)], timeswt)
dat
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3900 2620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3900 2875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3850 2320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3080 3215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3150 3440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2760 3460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3210 3570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3690 3190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3920 3150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3920 3440 18.30 1 0 4 4
## Merc 280C 17.8 6 167.6 123 3920 3440 18.90 1 0 4 4
## Merc 450SE 16.4 8 275.8 180 3070 4070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3070 3730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3070 3780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2930 5250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3000 5424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3230 5345 17.42 0 0 3 4
## Fiat 128 32.4 4 78.7 66 4080 2200 19.47 1 1 4 1
## Honda Civic 30.4 4 75.7 52 4930 1615 18.52 1 1 4 2
## Toyota Corolla 33.9 4 71.1 65 4220 1835 19.90 1 1 4 1
## Toyota Corona 21.5 4 120.1 97 3700 2465 20.01 1 0 3 1
## Dodge Challenger 15.5 8 318.0 150 2760 3520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3150 3435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3730 3840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3080 3845 17.05 0 0 3 2
## Fiat X1-9 27.3 4 79.0 66 4080 1935 18.90 1 1 4 1
## Porsche 914-2 26.0 4 120.3 91 4430 2140 16.70 0 1 5 2
## Lotus Europa 30.4 4 95.1 113 3770 1513 16.90 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4220 3170 14.50 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3620 2770 15.50 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3540 3570 14.60 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4110 2780 18.60 1 1 4 2
## kml
## Mazda RX4 8.927940
## Mazda RX4 Wag 8.927940
## Datsun 710 9.693192
## Hornet 4 Drive 9.097996
## Hornet Sportabout 7.950118
## Valiant 7.695034
## Duster 360 6.079502
## Merc 240D 10.373416
## Merc 230 9.693192
## Merc 280 8.162688
## Merc 280C 7.567492
## Merc 450SE 6.972296
## Merc 450SL 7.354922
## Merc 450SLC 6.462128
## Cadillac Fleetwood 4.421456
## Lincoln Continental 4.421456
## Chrysler Imperial 6.249558
## Fiat 128 13.774536
## Honda Civic 12.924256
## Toyota Corolla 14.412246
## Toyota Corona 9.140510
## Dodge Challenger 6.589670
## AMC Javelin 6.462128
## Camaro Z28 5.654362
## Pontiac Firebird 8.162688
## Fiat X1-9 11.606322
## Porsche 914-2 11.053640
## Lotus Europa 12.924256
## Ford Pantera L 6.717212
## Ferrari Dino 8.375258
## Maserati Bora 6.377100
## Volvo 142E 9.097996
11. úloha
library(arsenal)
cars <- data.frame()
setwd("D:/stu/R/1.R_uvod") # alebo interaktívne pomocou funkcie choose.dir()
cars <- read.table("mtcars.txt", header = TRUE, sep = "", dec=",", skip=2, na.strings = "NA", numerals = "allow.loss")
cars
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 ? 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
## Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 ? 1 4 2
summary(comparedf(dat, cars))
##
##
## Table: Summary of data.frames
##
## version arg ncol nrow
## -------- ----- ----- -----
## x dat 12 32
## y cars 11 32
##
##
##
## Table: Summary of overall comparison
##
## statistic value
## ------------------------------------------------------------ ------
## Number of by-variables 0
## Number of non-by variables in common 11
## Number of variables compared 5
## Number of variables in x but not y 1
## Number of variables in y but not x 0
## Number of variables compared with some values unequal 2
## Number of variables compared with all values equal 3
## Number of observations in common 32
## Number of observations in x but not y 0
## Number of observations in y but not x 0
## Number of observations with some compared variables unequal 32
## Number of observations with all compared variables equal 0
## Number of values unequal 64
##
##
##
## Table: Variables not shared
##
## version variable position class
## -------- --------- --------- --------
## x kml 12 numeric
##
##
##
## Table: Other variables not compared
##
## var.x pos.x class.x var.y pos.y class.y
## ------ ------ -------- ------ ------ ----------
## cyl 2 numeric cyl 2 integer
## hp 4 numeric hp 4 integer
## vs 8 numeric vs 8 character
## am 9 numeric am 9 integer
## gear 10 numeric gear 10 integer
## carb 11 numeric carb 11 integer
##
##
##
## Table: Observations not shared
##
##
## ---------------------------
## No observations not shared
## ---------------------------
##
##
##
## Table: Differences detected by variable
##
## var.x var.y n NAs
## ------ ------ --- ----
## mpg mpg 0 0
## disp disp 0 0
## drat drat 32 0
## wt wt 32 0
## qsec qsec 0 0
##
##
##
## Table: Differences detected (44 not shown)
##
## var.x var.y ..row.names.. values.x values.y row.x row.y
## ------ ------ -------------- --------- --------- ------ ------
## drat drat 1 3900 3.9 1 1
## drat drat 2 3900 3.9 2 2
## drat drat 3 3850 3.85 3 3
## drat drat 4 3080 3.08 4 4
## drat drat 5 3150 3.15 5 5
## drat drat 6 2760 2.76 6 6
## drat drat 7 3210 3.21 7 7
## drat drat 8 3690 3.69 8 8
## drat drat 9 3920 3.92 9 9
## drat drat 10 3920 3.92 10 10
## wt wt 1 2620 2.62 1 1
## wt wt 2 2875 2.875 2 2
## wt wt 3 2320 2.32 3 3
## wt wt 4 3215 3.215 4 4
## wt wt 5 3440 3.44 5 5
## wt wt 6 3460 3.46 6 6
## wt wt 7 3570 3.57 7 7
## wt wt 8 3190 3.19 8 8
## wt wt 9 3150 3.15 9 9
## wt wt 10 3440 3.44 10 10
##
##
##
## Table: Non-identical attributes
##
##
## ----------------------------
## No non-identical attributes
## ----------------------------