Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο 2 αριθμούς. Η συνάρτηση θα επιστρέφει:
-1
αν και οι δύο αριθμοί είναι μικρότεροι από το 0,0
αν τουλάχιστον ένας αριθμός είναι ίσος με το 0,1
αν κοι οι δύο αριθμοί είναι μεγαλύτεροι από το 0.
Ένα κατάστημα πουλάει μπάλες με την εξής πολιτική:
- Οι πρώτες 10 μπάλες που αγοράζεις κοστίζουν 2 ευρώ ανά μπάλα.
- Από την 11η μέχρι και την 20η κοστίζουν 1 ευρώ η μπάλα.
- Από την 21η και μετά κοστίζουν 0.5 ευρώ η μπάλα.
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο 1 αριθμό. Η συνάρτηση θα επιστρέφει τη τιμή που κάνουν τόσες μπάλες όσες αυτός ο αριθμός. Για παράδειγμα:
f(5) --> επιστρέφει: 10 (2*5)
f(15) --> επιστρέφει: 25 (10*2 + 5*1)
f(25) --> επιστρέφει 32.5 (10*2 + 10*1 + 5*0.5)
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο έναν αριθμό ο οποιος θα αναπαριστάνει δευτερόλεπτα. Ο αριθμός μπορεί να είναι και μεγαλύτερος από 60 (π.χ 10000). Η συνάρτηση θα μετατρέπει τον αριθμό αυτό στην αντίστοιχη αναπαράσταση σε ώρες, λεπτά και δευτερόλεπτα. Η συνάρτηση θα πρέπει να επιστρέφει ένα διάνυσμα με τρεις ακέραιες τιμές. Η πρώτη θα είναι οι ώρες (έναν αριθμός >=0) η δεύτερη τα λεπτά (ένας αριθμός από το 0 μέχρι το 59) και η τρίτη τα δευτερόλεπτα (ένας αριθμός από το 0 μέχρι το 59).
Για παράδειγμα θα πρέπει:
f(56751) --> Επιστρέφει το διάνυσμα: c(15, 45, 51)
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο έναν ακέραιο αριθμό. Η συνάρτηση θα επιστρέφει έναν αριθμό από το 0 μέχρι το 9 ο οποίος θα είναι πόσες δεκάδες έχει ο αριθμός της παραμέτρου. Για παράδειγμα:
f(123) --> Επιστρέφει 2
f(4) --> Επιστρέφει 0
f(4567) --> Επιστρέφει 6
Γράξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο 2 αριθμούς x1,x2. Η συνάρτηση θα επιστρέφει:
- Aν τo άθροισμά τους είναι 0, επιστρέφει: 'ADYNATO'
- Αν το άθροισμα τους δεν είναι 0 επιστρέφει τη τιμή της παράστασης:
Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο ένα αλφαριθμητικό. Η συνάρτηση θα επιστρέφει TRUE
αν η ακολουθία ΔΕΝ περιέχει κάποιον αριθμό, διαφορετικά θα επιστρέφει FALSE
. Για παράδειγμα:
f('mitsos') --> επιστρέφει TRUE
f('mi4tsos') --> επιστρέφει FALSE
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο 2 αριθμούς h,m. Η συνάρτηση θα επιστρέφει:
TRUE
αν το h είναι από το 0 μέχρι και το 23 και το m είναι από το 0 μέχρι και το 59.FALSE
αν δεν ισχύει το παραπάνω.
Για παράδειγμα:
f(5,3) --> True
f(24,5) --> False
f(10, 61) --> False
f(0, 0) --> True
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο έναν αριθμό από το 1 μέχρι το 10000 η οποίος αναπαριστάνει μία χρονιά. Η συνάρτηση θα επιστρέφει ένα string το οποίο θα αναπαριστάνει σε ποιον αιώνα βρίσκεται αυτή η χρονιά. Η συνάρτηση πρέπει να επιστρέφει ένα string της μορφής "Χ century", όπου Χ είναι ο αιώνας. Για παράδειγμα o 19os αιώνας ξεκινάει από το 1801 και τελειώνει το 1900. Ο 1ος αιώνας ξεκινάει το 1 και τελειώνει το 100. Ο 21ος αιώνας ξεκινάει το 2001 και τελειώνει το 2100. Μερικά παραδείγματα:
f(550) --> "6 century"
f(500) --> "5 century"
f(1) --> "1 century"
f(1950) --> "20 century"
f(2000) --> "20 century"
f(2001) --> "21 century"
f(2021) --> "21 century"
Δίνεται ότι:
- 1 κιλό είναι 2.20462 pounds
- 2 pound είναι 16 ουγκιές <-- αυτό είναι λάθος. 1 pound είναι 16 ουγκιές
Γράψτε μία συνάρτηση με το όνομα f.1
η οποία θα παίρνει σαν παράμετρο έναν αριθμό ο οποίος θα αναπαριστάνει κιλά. Η συνάρτηση θα επιστρέφει το αντίστοιχο βάρος σε pounds.
Γράψτε μία συνάρτηση με το όνομα f.2
η οποία θα παίρνει σαν παράμετρο έναν αριθμό ο οποίς θα αναπαριστάνει pounds. Η συνάρτηση θα επιστρέφει το αντίστοιχο βάτος σε ουγκιές.
Γράψτε μία συνάρτηση με το όνομα f.3
η οποία θα παίρνει σαν παράμετρο έναν αριθμό ο οποίος θα αναπαριστάνει κιλά. Η συνάρτηση θα επιστρέφει το αντίστοιχο βάρος σε ουγκιές. Αυτή η συνάρτηση πρέπει να χρησιμοποιεί τις f.1
και f.2
.
Φτιάξτε μία συνάρτηση η οποία θα παίρνει τέσσερις παρααμέτρους: a, b, c, d. Η συνάρτηση θα επιστρέφει ένα διάνυσμα το οποίο θα περιέχει τις τιμές Χ, Υ που αναπαριστούν το σημείο στο επίπεδο όπου τέμνονται οι ευθείες:
y = a*x + c
y = b*x + d
Το σημείο αυτό είναι το εξής:
Παρατηρούμε ότι:
- αν
a == b
, καιc != d
τότε οι ευθείες είναι παράλληλες και δεν συναντιούνται ποτέ. Σε αυτή τη περίπτωση πρέπει να επιστρέφει το string"PARALLEL"
. - Αν το
a==b
καιc == d
είναι οι ευθείες είναι οι ίδιες και έχουν άπειρα σημεία στα οποία τέμνονται. Σε αυτή τη περίπτωση πρέπει να επιστρέφει: "EQUAL LINES"
Για παράδειγμα:
f(1,2,3,4) --> επιστρέφει το διάνυσμα c(X=-1, Y=2) Δηλαδή: c(X=(4-3)/(1-2), Y=(1*(4-3)/(1-2))+3)
f(1,1,3,4) --> επιστρέφει το string "PARALLEL"
f(1,1,3,3) --> επιστρέφει το string "EQUAL LINES"
Αν αρχίσουμε να αθροίζουμε όλους τους αριθμούς που δεν διαιρούνται με το 7 ξεκινώντας από το 1, σε ποιον αριθμό αυτό το άθροισμα θα ξεπεράσει το 10.000 ;
Ποιο είναι το άθροισμα όλων των αριθμών από το 1 μέχρι το 10.000 που το τελευταίο ψηφίο τους είναι το 7;
Βρείτε και τυπώστε όλους τους αριθμούς a,b,c όπου 1<=a,b,c<=100 τέτοιοι ώστε:
a2 = b2 + c2
Γράψτε κώδικα ο οποίος να τυπώνει το παρακάτω:
9 8 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
ΠΡΟΣΟΧΗ! χρησιμοποιήστε for ή while. Μην κάνετε κάτι τέτοιο:
print ("9 8 7 6 5 4 3 2 1")
print ("8 7 6 5 4 3 2 1")
print ("7 6 5 4 3 2 1")
print ("6 5 4 3 2 1")
print ("5 4 3 2 1")
print ("4 3 2 1")
print ("3 2 1")
print ("2 1")
print ("1")
Γράψτε κώδικα ο οποίος να τυπώνει το παρακάτω:
1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5
6 6 6 6
7 7 7
8 8
9
ΠΡΟΣΟΧΗ! χρησιμοποιήστε for ή while. Μην κάνετε κάτι τέτοιο:
print ("1 1 1 1 1 1 1 1 1")
print ("2 2 2 2 2 2 2 2")
print ("3 3 3 3 3 3 3")
print ("4 4 4 4 4 4")
print ("5 5 5 5 5")
print ("6 6 6 6")
print ("7 7 7")
print ("8 8")
print ("9")
Αν αρχίσουμε να αθροίζουμε τους κύβους όλων των αριθμών (δηλαδή τη δύναμή τους στο 3), σε ποιον αριθμό το άθροισμα αυτό θα ξεπεράσει το 10.000;
Φτιάξτε μία συνάρτηση με το όνομα f
η οποία θα παίρνει δύο παράμετρους x
, n
. Η συνάρτηση θα επιστρέφει τη τιμή:
f(x,n) = -xn / n
Ποιο είναι το άθροισμα των τιμών της συνάρτηση f
για όλα τα n από το 1 μέχρι και το 100 και x=1 ;
Φτιάξτε μία συνάρτηση με το όνομα f
η οποία θα παίρνει μία παράμετρο x ο οποίος θα είναι ένα ακέραιο αριθμό. Η συνάρτηση θα επιστρέφει:
- Αν ο x είναι ζυγός (άρτιος) επιστρέφει: -1/x
- Αν ο x είναι μονός (περιττός) επιστρέφει: 1/x
Βρείτε το άθροισμα όλων των τιμών της f
για x από το 1 μέχρι και το 100. Δηλαδή: f(1) + f(2) + ... + f(100)
.
Από όλα τα ζευγάρια των αριθμών a,b όπου 1<=a<=100 και 1<=b<=100, βρείτε ποιοι είναι αυτοί για τους οποίους ισχύει:
a2 = b2 - a3
Ας υποθέσουμε ότι έχω σε έναν λογαριασμό 1000 ευρώ. Ο λογαριασμός αυτός τοκίζεται με 3% κάθε χρόνο. Τι ποσό θα έχει ο λογαριασμός αυτός μετά από 10 χρόνια;
Φτιάξτε μία συνάρτηση f
η οποία θα παίρνει μία παράμετρο n. Η συνάρτηση επιστρέφει: 1/(n!).
Υπολογίστε το άθροισμα των τιμών της συνάρτησης αυτή για n από 1 μέχρι και 20.
Το n! είναι το παραγοντικό και υπολογίζεται με: factorial(n)
.
Το παραγοντικό ενός αριθμού Ν είναι το γινόμενο: 1*2*3*...*Ν
Για ποια τιμή του χ από το 1 μέχρι και το 100 η συνάρτηση:
f(x) = -x3 + 5x2 - 2x
Παίρνει τη μεγαλύτερη τιμή;
Για ποια τιμή του χ από το 1 μέχρι και το 100 με βήμα 0.01 η συνάρτηση:
f(x) = log(1/x) - sin(x)
Παίρνει τη μεγαλύτερη τιμή;
hint:
seq(1, 100, by=0.01) # επιστρέφει ένα διάνυσμα από 1 μέχρι και 100 με βήμα 0.01
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο δύο διανύσματα A και B. Η συνάρτηση θα επιστρέφει ένα νέο διάνυσμα το οποίο θα περιέχει τα στοιχεία που υπάρχουν στο A και δεν υπάρχουν στο B. Για παράδειγμα:
A <- c(1,2,3,4,5,6)
B <- c(3,4,5,6,7,8,9,10)
f(A,B) # Επιστρέφει το διάνυσμα: 1,2
Γράψτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο ένα διάνυσμα από ακέραιους αριθμούς όπου κάθε αριθμός είναι από το 1 μέχρι το 100. Η συνάρτηση θα πρέπει να επιστρέφει τον μικρότερο αριθμό από το 1 μέχρι το 100 που ΔΕΝ υπάρχει στο διάνυσμα. Αν δεν υπάρχει τέτοιος αριθμός επιστρέφει 0.
Για παράδειγμα:
a <- c(1,5,2,98,99,100)
f(a) # Επιστρέφει 3. Το 3 είναι ο μικρότερος αριθμός από το 1 μέχρι το 100 που δεν υπάρχει στο a
f(c(1:100)) # Επιστρέφει 0
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο ένα διάνυσμα από ακέραιους και θα επιστρέφει το μικρότερο άρτιο (ζυγό) στοιχείο. Αν δεν υπάρχει κανένα άρτιο στοιχείο επιστρέφει 0. Για παράδειγμα:
a <- c(10,9,8,7,6,5,4,3,2,1)
f(a) # Επιστρέφει 2. Το 2 είναι ο μικρότερος ζυγός αριθμός
a <- c(5,7,9)
f(a) # Επιστρέφει 0. Δεν υπάρχει ζυγός αριθμός.
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο ένα διάνυσμα από ακέραιους και θα επιστρέφει το μεγαλύτερο περιττό (μονό) στοιχείο. Αν δεν υπάρχει κανένα περιττό στοιχείο επιστρέφει 0. Για παράδειγμα:
a <- c(10,9,8,7,6,5,4,3,2,1)
f(a) # Επιστρέφει 9. Το 9 είναι ο μεγαλύτερος μονός αριθμός
a <- c(5,15,25)
f(a) # Επιστρέφει 0. Δεν υπάρχει μονός αριθμός.
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο ένα διάνυσμα από ακέραιους και θα επιστρέφει τον αριθμό του οποίου η απόλυτη διαφορά με το 5 θα είναι μικρότερη. Ή αλλιώς θα επιστρέφει το στοιχείο του διανύσματος που έχει τη μικρότερη απόσταση με το 5. Για παράδειγμα:
a <- c(3,6,8,7,9)
f(a) # Επιστρέφει 6. Το 6 είναι ο αριθμός που έχει τη μικρότερη απόσταση από το 5.
Hint: Η απόλυτη διαφορά μεταξύ 2 αριθμών a,b υπολογίζεται με: abs(a-b)
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο ένα διάνυσμα από ακέραιους και θα επιστρέφει:
TRUE
αν το άθροισμα των μονών (περιττών) αριθμών του διανύσματος είναι μονόςFALSE
αν το άθροισμα των μονών (περιττών) αριθμών του διανύσματος είναι ζυγός (άρτιος)
Έστω δύο διανύσματα A και B με αριθμούς και έστω ότι έχουν ίδιο μέγεθος. Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο δύο διανύσματα αυτού του είδους. Η συνάρτηση θα επιστρέφει ένα νέο διάνυσμα το οποίο θα περιέχει τα στοιχεία του A που είναι μικρότερα από τα στοιχεία του B (αν τα συγκρίνουμε στοιχείο προς στοιχείο).
Για παράδειγμα:
a <- c(9,3,5,6,5)
b <- c(3,6,8,1,4)
f(a,b) # Επιστρέφει: c(3,5)
# Εξήγηση: Έχουμε τα εξής ζευγάρια:
# 9,3 --> 9 μεγαλύτερο ΔΕΝ ΤΟ ΚΡΑΤΑΜΕ
# 3,6 --> 3 μικρότερο ΤΟ ΚΡΑΤΑΜΕ
# 5,8 --> 5 μικρότερο ΤΟ ΚΡΑΤΑΜΕ
# 6,1 --> 6 μεγαλύτερο ΔΕΝ ΤΟ ΚΡΑΤΑΜΕ
# 5,4 --> 5 μεγαλύτερο ΔΕΝ ΤΟ ΚΡΑΤΑΜΕ
Έστω ένα διάνυσμα το οποίο αποτελείται από αλφαριθμητικά. Το κάθε αλφαριθμητικό μπορεί να είναι είτε "podhlato"
είτε "amaxi"
είτε "ntalika"
. Θεωρούμε ότι το "podhlato"
έχει 2 ρόδες, το "amaxi"
έχει 4 ρόδες και η "ntalika"
έχει 6 ρόδες.
Φτιάξτε μία συνάρτηση που θα παίρνει σαν παράμετρο ένα τέτοιο διάνυσμα και θα επιστρέφει το πλήθος από ρόδες που έχουν όλα τα οχήματα στο διάνυσμα.
Για παράδειγμα:
a <- c('ntalika', 'podhlato', 'podhlato', 'amaxi')
f(a) # Επιστρέφει 14 (6+2+2+4)
a <- c('ntalika' 'ntalika', 'amaxi', 'podhlato', 'amaxi')
f(a) # Επιστρέφει 22 (6+6+4+2+4)
Φτιάξτε μία συνάρτηση που να παίρνει σαν παράμετρο ένα διάνυσμα από ακέραιους αριθμούς. Η συνάρτηση θα πρέπει να επιστρέφει:
TRUE
αν υπάρχει τουλάχιστον ένας μονός (περιττός) αριθμόςFALSE
αν δεν υπάρχει κανένας μονός αριθμός
Φτιάξτε 2 διανύσματα a και b με τουλάχιστον 4 ακέραιους αριθμούς (μπορείτε και παραπάνω). Θα πρέπει η παρακάτω πράξη να βγάζει αποτέλεσμα TRUE:
sum(a[a<b]) == sum(b[b<a])
Έστω δύο διανύσματα heights και weights. Το πρώτο περιέχει το βάρος ενός συνόλου ανθρώπων και το δεύτερο έχει το βάρος τους. Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρους δύο διανύσματα όπως τα heights και weights. Η συνάρτηση θα επιστρέφει το πλήθος των ανθρώπων που το Body Mass Index τους (βάρος/(ύψος2) είναι μεγαλύτερο από 30.
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο ένα διάνυσμα με αριθμούς. Η συνάρτηση θα επιστρέφει τον μέσο όρο όλων των στοιχείων αν αφαιρέσουμε το μεγαλύτερο και το μικρότερο. Για παράδειγμα:
f(c(20,10,5,13,17,13,4,8,1,6)) # Επιστρέφει: 9.5 mean(c(10,5,13,17,13,4,8,6)) (αφαιρέσαμε το μεγαλύτερο (20) και το μικρότερο (1))
Έστω δύο διανύσματα ages
και weights
. Το πρώτο περιέχει τις ηλικίες ενός συνόλου ανθρώπων και το δεύτερο έχει το βάρος τους. Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρους δύο διανύσματα όπως τα ages
και weights
. Η συνάρτηση θα επιστρέφει το βάρος του ανθρώπου που έχει τη μεγαλύτερη ηλικία . Για παράδειγμα:
ages <- c(60,40,70,50)
weights <- c(87, 71, 61, 90)
f(ages, weights) # επιστρέφει 61
# εξήγηση: τη μεγαλύτερη ηλικία την έχει ο 3ος ανθρωπος (70). Το βάρος του 3ου ανθρώπου είναι 61
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο ένα διάνυσμα. Η συνάρτηση θα πρέπει να επιστρέφει ένα νέο διάνυσμα όπου το τελευταίο στοιχείο θα έχει μπει στην αρχή. Για παράδειγμα:
a <- c(1,2,3,4)
f(a)
# Επιστρέφει το διάνυσμα: 4,1,2,3
Ένα άλλο παράδειγμα:
a <- c("hrakleio", 'larissa', 'athens', 'chania')
f(a)
# Επιστρέφει το διάνυσμα: c("chania", "hrakleio", 'larissa', 'athens')
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο δύο διάνυσμα a
και b
με ακέραιες τιμές από το 1 μέχρι το 100. Η συνάρτηση θα πρέπει να επιστρέφει ένα διάνυσμα με όλες τις τιμές από το 1 μέχρι το 100 που ΔΕΝ υπάρχουν ούτε στο a
ούτε στο b
.
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο ένα διάνυσμα a
με ακέραιους αριθμούς. Η συνάρτηση θα επιστρέφει ένα διάνυσμα με όλες τις τιμές του a
που υπάρχουν μόνο μία φορά μέσα στον a
.
Για παράδειγμα:
a <- c(2,3,1,2,4,1)
f(a) # επιστρέφει: 3,4
Έστω x1 ο αριθμός της γραμμής και y1 ο αριθμός της στήλης ενός στοιχείου σε έναν πίνακα. Έστω x2 ο αριθμός της γραμμής και y2 ο αριθμός της στήλης ενός άλλου στοιχείου στον ίδιο πίνακα.
Φτιάξτε μία συνάρτηση που να παίρνει ως παραμέτρους τους αριθμούς x1, y1, x2, y2 και να επιστρέφει TRUE
/FALSE
ανάλογα μα το αν αυτά τα δύο στοιχεία είναι στην ίδια γραμμή ή στην ίδια στήλη
Παράδειγμα:
0 1 0
0 0 1
0 0 0
x1=1, y1=2, x2=2, y2=3 --> FALSE
0 1 0
1 0 0
0 0 0
x1=1, y1=2, x2=2, y2=1 --> FALSE
0 0 0
0 1 0
0 0 1
x1=2, y1=2, x2=3, y2=3 --> FALSE
1 0 1
0 0 0
0 0 0
x1=1, y1=1, x2=1, y2=3 --> TRUE
1 0 0
0 0 0
0 1 0
x1=1, y1=1, x2=3, y2=2 --> FALSE
1 0 0
1 0 0
0 0 0
x1=1, y1=1, x2=2, y2=1 --> TRUE
Η συνάρτηση θα πρέπει να μην υποθέτει ότι ο πίνακας έχει συγκεκριμένο πλήθος γραμμών και στηλών.
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο έναν πίνακα (matrix). Η συνάρτηση Θα επιστρέφει το άθροισμα όλων των στοιχείων που δεν ανήκουν στη περίμετρό του. Για παράδειγμα: Έστω
a =
1 3 5 6
4 2 3 1
5 4 2 1
Επιστρέφει: 2+3=5
Η συνάρτηση θα πρέπει να μην υποθέτει ότι ο πίνακας έχει συγκεκριμένο πλήθος γραμμών και στηλών.
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο έναν πίνακα (matrix). Η συνάρτηση θα επιστρέφει τον αριθμό της στήλης που έχει το μεγαλύτερο άθροισμα. Για παράδειγμα:
Έστω:
a =
1 3 5 6
4 2 3 1
5 4 3 1
Τα αθροίσματα των στηλών είναι:
1η στήλη: 1+4+5 = 10
2η στήλη: 3+2+4 = 9
3η στήλη: 5+3+3 = 11
4η στήλη: 6+1+1 = 8
Η στήλη με το μεγαλύτερο άθροισμα είναι η 3η. Άρα θα επιστρέφει: 3
Η συνάρτηση ΔΕΝ θα πρέπει να υποθέτει ότι ο πίνακας έχει συγκεκριμένο πλήθος γραμμών και στηλών.
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο έναν πίνακα (matrix). Η συνάρτηση θα επιστρέφει το άθροισμα των στοιχείων που βρίσκονται στις 4 γωνίες του.
Έστω:
a =
1 3 5 6
4 2 3 1
5 4 2 1
Τα στοιχεία που βρίσκονται στις 4 γωνίες είναι:
1 - - 6
- - - -
5 - - 1
Το άθροισμα των στοιχείων που ανήκουν στις 4 γωνίες είναι: 1+6+5+1 = 13. Άρα η συνάρτηση θα πρέπει να επιστρέφει: 13
Η συνάρτηση ΔΕΝ θα πρέπει να υποθέτει ότι ο πίνακας έχει συγκεκριμένο πλήθος γραμμών και στηλών.
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο έναν πίνακα (matrix). Η συνάρτηση θα επιστρέφει τον ίδιο πίνακα όπου όμως όλα τα στοιχεία που ανήκουν στη διαγώνια θα είναι -1.
Για παράδειγμα:
a =
1 3 5 6
4 2 3 1
5 4 2 1
6 4 3 8
f(a) επιτρέφει:
a =
-1 3 5 6
4 -1 3 1
5 4 -1 1
6 4 3 -1
Φτιάξτε μία συνάρτηση που θα παίρνει ως παράμετρο έναν πίνακα (matrix). Ο πίνακας θα έχει μόνο τιμές 0 ή 1. Η συνάρτηση θα επιστρέφει TRUE
ή FALSE
ανάλογα με αν υπάρχει έστω μία στήλη όπου το πλήθος των στοιχείων της που είναι "0" είναι περιττός (μονός).
Παράδειγμα:
a =
0 1 0 0
1 1 0 1
0 0 1 1
0 0 0 1
Το πλήθος των "0" σε κάθε στήλη είναι:
a =
0 1 0 0
1 1 0 0
1 0 1 0
0 0 0 0
| | | |
2 2 3 4
Βλέπουμε ότι υπάρχει μία στήλη όπου το πλήθος από "0" είναι μονός αριθμός (η 3η στήλη). Άρα επιστρέφει TRUE
.
Ένα άλλο παράδειγμα:
a =
0 1 1 0
1 1 1 0
1 0 1 0
0 0 1 0
| | | |
2 2 0 4
Εδώ δεν υπάρχει καμία στήλη όπου το πλήθος από "0" να είναι μονός αριθμός, άρα επιστρέφει FALSE.
Η συνάρτηση ΔΕΝ θα πρέπει να υποθέτει ότι ο πίνακας έχει συγκεκριμένο πλήθος γραμμών και στηλών.
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο έναν αριθμός N>=1. Θα επιστρέφει έναν πίνακα NxN τέτοιο ώστε:
- Όλα τα στοιχεία που ανήκουν στη περίμετρο του πίνακα θα είναι Ν
- Όλα τα στοιχεία που ΔΕΝ ανήκουν στη περίμετρο θα είναι 0.
Για παράδειγμα:
f(3) # Epistrefei ton pinaka:
3 3 3
3 0 3
3 3 3
f(4) # Epistrefei ton pinaka:
4 4 4 4
4 0 0 4
4 0 0 4
4 4 4 4
f(5) # Epistrefei ton pinaka:
5 5 5 5 5
5 0 0 0 5
5 0 0 0 5
5 0 0 0 5
5 5 5 5 5
Φτιάξτε μία συνάρτηση η οποία θα παίρνει 2 ακέραιους αριθμούς K και L. Θα επιστρέφει έναν πίνακα διαστάσεων K x L, τέτοιο ώστε:
- Στις μονές γραμμές οι μονές στήλες είναι 1 και οι ζυγές στήλες 0.
- Στις ζυγές γραμμές οι ζυγές στήλες είναι 1 και οι μονές στήλες 0.
Για παράδειγμα: f(4,4) επιστρέφει:
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν όρισμα έναν πίνακα A. Θα επιστρέφει έναν νεό πίνακα ο οποίος θα περιέχει τον A στις 4 γωνίες του. Δηλαδή ο πίνακας που θα επιστρέφει θα είναι ο:
A -A
-A A
Για παράδειγμα. Έστω A:
3 5
7 1
Θα επιστρέφει:
3 5 -3 -5
7 1 -7 -1
-3 -5 3 5
-7 -1 7 1
Ένα άλλο παράδειγμα: Έστω A:
3 5 0
7 1 9
Ο πίνακας που θα επιστρέφει θα είναι:
3 5 0 -3 -5 0
7 1 9 -7 -1 -9
-3 -5 0 3 5 0
-7 -1 -9 7 1 9
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο έναν πίνακα Μ Χ Ν. Η συνάρτηση θα επιστρέφει έναν νέο πίνακα (Μ-1) Χ (Ν-1) ο οποίος θα "περιέχει" μόνο τα στοιχεία του πίνακα που δεν ανήκουν στη περίμετρό του.
Για παράδειγμα: Έστω A:
3 8 9 5
7 5 5 1
1 4 9 0
2 6 4 8
Η συνάρτηση θα επιστρέφει τον παρακάτω πίνακα:
5 5
4 9
Φτιάξτε μία συνάρτηση που θα παίρνει σαν όρισμα έναν τετραγωνικό πίνακα. Η συνάρτηση θα επιστρέφει TRUE
/FALSE
ανάλογα με το αν η διαγώνιος (από τα αριστερά προς τα δεξιά) είναι μικρότερη από την αντιδιαγώνιο (από το δεξιά προς τα αριστερά). Για παράδειγμα:
1 4 6
5 4 2
9 8 1
Η κύρια διαγώνιος έχει άθροισμα: 1+4+1 = 6
Η αντιδιαγώνιος έχει άθροισμα: 9+4+6 = 19
Η κύρια διαγώνιος είναι μικρότερη από τη αντιδιαγώνιο οπότε επιστρέφει: TRUE
Φτιάξτε μία συνάρτηση που θα παίρνει σαν όρισμα 2 πίνακες ίδιων διαστάσεων A και B. Θα επιστρέφει έναν νέο πίνακα ο οποίος θα περιέχει το μικρότερο στοιχείο κάθε θέσης από τους 2 πίνακες. Για παράδειγμα:
Έστω A
1 3 5
5 4 0
8 4 7
Έστω B
3 1 0
4 6 8
2 6 3
Επιστρέφει:
1 1 0
4 4 0
2 4 3
Γράψτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο έναν πίνακα με ακέραιους. Η συνάρτηση θα επιστρέφει έναν νέο πίνακα όπου:
- Στη θέση όπου ο A είχε μονά στοιχεία, ο νέος πίνακα θα έχει τον αριθμό:
1
- Στη θέση όπου ο A είχε άρτια (ζυγά) στοιχεία, ο νέος πίνακας θα έχει τον αριθμό:
-1
.
Για παράδειγμα: Έστω A=
3 6 4 8
4 6 9 1
3 5 6 1
3 4 2 6
Τότε η συνάρτησή σας θα επιστρέφει τον πίνακα:
1 -1 -1 -1
-1 -1 1 1
1 1 -1 1
1 -1 -1 -1
Φτιάξτε μία συνάρτηση η οποία θα επιστρέφει έναν πίνακα με 100 γραμμές και 10 στήλες ο οποίος θα περιέχει τη προπαίδεια όλων των αριθμών από το 1 μέχρι και το 100. Δηλαδή:
- Η πρώτη γραμμή θα περιέχει τη προπαίδεια του 1
- Η 2η γραμμή θα περιέχει τη προπαίδεια του 2
- ...
- Η 100η γραμμή θα περιέχει τη προπαίδεια του 100
Σημείωση: Ως προπαίδεια εννοούμε το γινόμενο ενός αριθμού με όλους τους αριθμούς από το 1 μέχρι 10.
Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο μία λίστα με πίνακες. Θα επιστρέφει τον πίνακα ο οποίος έχει το μικρότερο άθροισμα στοιχείων.
Φτιάξτε μία συνάρτηση που θα παίρνει σαν παράμετρο μία λίστα με πίνακες. Θα επιστρέφει τον πίνακα με τα λιγότερα στοιχεία. Αν υπάρχουν περισσότεροι από έναν πίνακες με τα λιγότερα στοιχεία επιστρέφει απλά έναν από αυτούς.
Φτιάξτε μία συνάρτηση που θα παίρνει σαν παράμετρο μία λίστα με πίνακες οι οποίοι περιέχουν ακέραιους αριθμούς. Θα επιστρέφει τον πίνακα με τους λιγότερους μονούς (περιττούς) αριθμούς. Αν υπάρχουν περισσότεροι από έναν πίνακες με αυτή την ιδιότητα απλά επιστρέφει έναν από αυτούς.
Φτιάξτε μία λίστα η οποία να περιέχει ένα οποιοδήποτε πίνακα, δύο οποιαδήποτε διανύσματα, έναν οποιοδήποτε ακέραιο, μία οποιαδήποτε λογική τιμή (TRUE
/FALSE
), ένα οποιοδήποτε αλφαριθμητικό, ένα οποιοδήποτε data frame και δύο οποιεσδήποτε λίστες.
Φτιάξτε μία λίστα η οποία να έχει:
- το στοιχεία με το όνομα a το οποίο είναι ένας ακέραιος
- το στοιχείο με το όνομα b το οποίο είναι μία λίστα
- το στοιχείο με το όνομα c το οποίο είναι ένα αλφαριθμητικό.
Το a και το c μπορεί να περιέχουν ότι τιμή θέλετε. Το στοιχείο με το όνομα b πρέπει να είναι μία λίστα η οποία να έχει δύο στοιχεία:
- το στοιχείο με το όνομα
v
το οποίο είναι ένα διάνυσμα με τις τιμές 10,11,12 και - το στοιχείο με το όνομα
name
το οποίο να είναι μία λίστα η οποία να περιέχει δύο στοιχεία:- το στοιχείο με το όνομα
my.name
το οποίο περιέχει το όνομά σας (σε greeklish), και - το στοιχείο με το όνομα
my.surname
το οποιό περιέχει το επίθετό σας (σε greeklish)
- το στοιχείο με το όνομα
Έστω μία λίστα η οποία αντιπροσωπεύει ένα παραλληλόγραμμο και περιέχει 2 στοιχεία, τα a,b τα οποία είναι και τα μήκη των πλευρών του. Για παράδειγμα:
a <- list(a=30, b=30)
Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο μία λίστα όπως περιγράφηκε παραπάνω. Η συνάρτηση θα επιστρέφει TRUE
αν το εμβαδόν του παραλληλεπίπεδου είναι μεγαλύτερο ή ίσο με 100. Διαφορετικά επιστρέφει FALSE
.
Για παράρδειγμα:
a <- list(a=9, b=10)
f(a) # επιστρέφει FALSE
a <- list(a=10, b=11)
f(a) # επιστρέφει TRUE
Το εμβαδόν ενός παραλληλεπίπεδου είναι το γινόμενο του μήκους επί το πλάτους του.
Ας υποθέσουμε ότι έχουμε μία λίστα που περιέχει πολλά παραλληλεπίπεδα. Κάθε παραλληλεπίπεδο είναι μία λίστα που έχει δύο στοιχεία: το a και το b τα οποία αντιπροσωπεύουν το μήκος και το πλάτος του. Για παράδειγμα:
a<-list(
list(a=10, b=20),
list(a=14, b=23),
list(a=21, b=18),
list(a=18, b=19),
list(a=16, b=22),
list(a=16, b=27),
list(a=29, b=16),
list(a=21, b=11),
list(a=22, b=14),
list(a=20, b=17)
)
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο μία λίστα όπως αυτή που περιγράφηκε παραπάνω. Η συνάρτηση θα επιστρέφει τον μέσο όρο του εμβαδού όλων των παραλληλεπίπεδων που περιέχει.
Το εμβαδόν ενός παραλληλεπίπεδου είναι το γινόμενο του μήκους επί το πλάτους του.
Ας υποθέσουμε ότι έχουμε μία λίστα η οποία έχει πολλές λίστες. Κάθε υπο-λίστα αντιπροσωπεύει ένα παραλληλεπίπεδο και έχει δύο πεδία: το a
και το b
τα οποία αντιπροσωπεύουν το μήκος και το πλάτος του. Για παράδειγμα:
l<-list(
list(a=10, b=20),
list(a=14, b=23),
list(a=21, b=18),
list(a=18, b=19),
list(a=16, b=22),
list(a=16, b=27),
list(a=29, b=16),
list(a=21, b=11),
list(a=22, b=14),
list(a=20, b=17)
)
Γράψτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο μία λίστα όπως αυτή που περιγράφηκε παραπάνω. Η συνάρτηση θα επιστρέφει μία νέα λίστα η οποία θα περιέχει ακριβώς τα ίδια στοιχεία, όπου όμως κάθε υπο-λίστα θα έχει ένα νέο πεδίο με το όνομα area
με το εμβαδόν κάθε παραλληλεπίπεδου. Για παράδειγμα αν l
είναι το παράδειγμα που δόθηκε παραπάνω, τότε θα πρέπει:
f(l)
# επιστρέφει:
list(
list(a=10, b=20, area=200),
list(a=14, b=23, area=322),
list(a=21, b=18, area=378),
list(a=18, b=19, area=342),
list(a=16, b=22, area=352),
list(a=16, b=27, area=432),
list(a=29, b=16, area=464),
list(a=21, b=11, area=231),
list(a=22, b=14, area=308),
list(a=20, b=17, area=340)
)
Το εμβαδόν ενός παραλληλεπίπεδου είναι το γινόμενο του μήκους επί το πλάτους του.
Ας υποθέσουμε ότι έχουμε μία λίστα η οποία έχει πολλές λίστες. Κάθε υπο-λίστα αντιπροσωπεύει ένα παραλληλεπίπεδο και έχει τρία πεδία: το name
περιέχει ένα όνομα, ενώ τα a
και το b
αντιπροσωπεύουν το μήκος και το πλάτος του. Για παράδειγμα:
l<-list(
list(name='aa', a=10, b=20),
list(name='bb', a=14, b=23),
list(name='cc', a=21, b=18),
list(name='dd', a=18, b=19),
list(name='ee', a=16, b=22),
list(name='ff', a=16, b=27),
list(name='gg', a=29, b=16),
list(name='hh', a=21, b=11),
list(name='ii', a=22, b=14),
list(name='jj', a=20, b=17)
)
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο μία τέτοια λίστα. Η συνάρτηση Θα επιστρέφει ένα διάνυσμα το οποίο θα περιέχει τα ονόματα (δηλαδή το περιεχόμενο του πεδίου name
) των παραλληλεπίπεδων με εμβαδόν μεγαλύτερο από 300.
Το εμβαδόν ενός παραλληλεπίπεδου είναι το γινόμενο του μήκους επί το πλάτους του.
Ας υποθέσουμε ότι έχουμε μία λίστα η οποία έχει πολλές λίστες. Κάθε υπο-λίστα αντιπροσωπεύει ένα παραλληλεπίπεδο και έχει τρία πεδία: το name
περιέχει ένα όνομα, ενώ τα a
και το b
αντιπροσωπεύουν το μήκος και το πλάτος του. Για παράδειγμα:
l<-list(
list(name='aa', a=10, b=20),
list(name='bb', a=14, b=23),
list(name='cc', a=21, b=18),
list(name='dd', a=18, b=19),
list(name='ee', a=16, b=22),
list(name='ff', a=16, b=27),
list(name='gg', a=29, b=16),
list(name='hh', a=21, b=11),
list(name='ii', a=22, b=14),
list(name='jj', a=20, b=17)
)
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ως παράμετρο μία τέτοια λίστα. Η συνάρτηση Θα επιστρέφει το όνομα του παραλληλεπίπεδου που έχει το μεγαλύτερο εμβαδόν.
Το εμβαδόν ενός παραλληλεπίπεδου είναι το γινόμενο του μήκους επί το πλάτους του.
Φτιάξτε μια συνάρτηση που να δέχεται δύο παράμετρους. Κάθε παράμετρος θα είναι μία λίστα με αριθμούς. Η συνάρτηση θα επιστρέφει μια λίστα με το μικρότερο στοιχείο κάθε θέσης. Σε περίπτωση που ο χρήστης δώσει λίστες με διαφορετικό μέγεθος θα επιστρέφει το αλφαριθμητικό: "error".
Φτιάξτε μια συνάρτηση που θα έχει τρεις παράμετρους. Και οι 3 θα είναι λίστες με αριθμούς. Και οι 3 θα έχουν ίδιο μέγεθος. Η συνάρτηση θα επιστρέφει ένα πίνακα του οποίου οι γραμμές θα αποτελούνται από αυτές τις 3 λίστες. H πρώτη γραμμή θα έχει τους αριθμούς που βρίσκονται στη λίστα με το μικρότερο άθροισμα, η 2η γραμμή θα έχει τους αριθμούς που βρίσκονται στη λίστα με το 2ο μεγαλύτερο άθροισμα και η 3η στήλη θα έχει τους αριθμούς που βρίσκονται στη λίστα με το μεγαλύτερο άθροισμα.
Δίνεται ότι η συνάρτηση typeof
επιστρέφει τον τύπο μίας μεταβλητής στην R. Για παράδειγμα:
typeof("hello") # Επιστρέφε "character"
Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο μία λίστα. Θα επιστρέφει μία νέα λίστα η οποία θα περιέχει μόνο τα στοιχεία της λίστας των οποίων ο τύπος τους ΔΕΝ είναι αλφαριθμητικά ("character"
)
Γράξτε κώδικα σε R έτσι ώστε όταν γράφω:
a$b$a$b$a
Να τυπώνει "hello"
Γράψτε κώδικα σε R έτσι ώστε όταν γράφω:
a[[a$a$a]]
Να τυπώνει "hello"
Δίνεται η παρακάτω συνάρτηση η οποία παίρνει σαν παράμετρο ένα string το οποία περιέχει μία πρόταση (έχει δηλαδή και κενά). Η συνάρτηση επιστρέφει ένα διάνυσμα το οποίο περιέχει όλες τις λέξεις της πρότασης:
to.words <- function(sentence) {
return (strsplit(sentence, " ")[[1]])
}
Για παράδειγμα:
to.words('I love working with R') # Επιστρέφει το διάνυσμα c('I', 'love', 'working', 'with', 'R')
Φτιάξτε μία συνάρτηση η οποία θα παίρνει σαν παράμετρο ένα string το οποία περιέχει μία πρόταση (έχει δηλαδή και κενά). Η συνάρτηση η επιστρέφει μία λίστα η οποία ως πεδία θα έχει όλες τις λέξεις της πρότασης. Οι τιμές κάθε πεδίου θα είναι το μήκος της κάθε λέξης. Θα πρέπει δηλαδή να μπορώ να μπορώ να γράφω:
l <- f('I love working with R')
print (l$love) # Τυπώνει 4
print (l$R) # Τυπώνει 1
Δίνεται ότι η συνάρτηση nchar
επιστρέφει το μήκος ενός string:
print (nchar('hello')) # Τυπώνει 5
Δίνεται επίσης ότι αν a
είναι μία μεταβλητή τύπου char και l
είναι μία μεταβλητή τύπου λίστα, τότε ο τρόπος για να προσθέσεις ένα πεδίο με τη τιμή της μεταβλητής a
είναι:
l[[a]] <- ..εδώ βάλε ότι τιμή θέλεις να βάλεις σε αυτό το πεδίο..
π.χ.:
l <- list()
a <- 'mitsos'
l[[a]] <- 4
print (l$mitsos) # Τυπώνει 4
Γράψτε κώδικα R τέτοιον ώστε όταν γράφω:
a[[a[[a$a]]]]
Να τυπώνει "hello"
Μία εταιρία, έχει για κάθε εργαζόμενο μία λίστα με τα παρακάτω πεδία:
- Πεδίο
name
: περιέχει το όνομα του εργαζομένου - Πεδίο
salary
: περιέχει τον μισθό του εργαζόμενου - Πεδίο
project
: Το όνομα του project στο οποίο εργάζεται
Η ίδια εταιρία έχει για κάθε project που διαχειρίζεται, μία λίστα με τη παρακάτω δομή:
- Πεδίο
name
: περιέχει το όνομα του project - Πεδίο
value
: περιέχει την αξία του project
Ας υποθέσουμε λοιπόν ότι υπάρχει η λίστα employees
η οποία περιέχει τα στοιχεία για 100 εργαζόμενους της εταιρίας και η λίστα projects
η οποία περιέχει τα στοιχεία για 20 projects που διαχειρίζεται η εταιρία.
Ισχύει δηλαδή ότι:
employees <- list(
list(name="a", salary=10, project="p1"),
list(name="b", salary=20, project="p2"),
.... # synolo 100 stoixeia
)
projects <- list(
list(name="p1", value=1000),
list(name="p2", value=2000),
... # synolo 20 stoixeia
)
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ένα όρισμα με το όνομα project.name το οποίο θα είναι το όνομα ενός project. Η συνάρτηση θα επιστρέφει μία λίστα με τα ονόματα όλων των εργαζομένων σε αυτό.
Μία εταιρία, έχει για κάθε εργαζόμενο μία λίστα με τα παρακάτω πεδία:
- Πεδίο "name": περιέχει το όνομα του εργαζομένου
- Πεδίο "salary": περιέχει τον μισθό του εργαζόμενου
- Πεδίο "project": Το όνομα του project στο οποίο εργάζεται
Η ίδια εταιρία έχει για κάθε project που διαχειρίζεται, μία λίστα με τη παρακάτω δομή:
- Πεδίο name: περιέχει το όνομα του project
- Πεδίο value: περιέχει την αξία του project
Ας υποθέσουμε λοιπόν ότι υπάρχει η λίστα employees
η οποία περιέχει τα στοιχεία για 100 εργαζόμενους της εταιρίας και η λίστα projects
η οποία περιέχει τα στοιχεία για 20 projects που διαχειρίζεται η εταιρία.
Ισχύει δηλαδή ότι:
employees <- list(
list(name="a", salary=10, project="p1"),
list(name="b", salary=20, project="p2"),
.... # synolo 100 stoixeia
)
projects <- list(
list(name="p1", value=1000),
list(name="p2", value=2000),
... # synolo 20 stoixeia
)
Φτιάξτε μία συνάρτηση η οποία θα παίρνει ένα όρισμα με το όνομα project.name
το οποίο θα είναι το όνομα ενός project. Η συνάρτηση θα επιστρέφει τον μέσο όρο του μισθού όλων των εργαζομένων που απασχολούνται στο project με αυτό το όνομα.
Σε αυτή τη σελίδα: https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Greece υπάρχει μία λίστα με τον πληθυσμό των Ελληνικών πόλεων.
Μπορείτε να κατεβάσετε ένα μέρος από τον πίνακα αυτός σε μορφή R data frame με την εντολή:
cities <- read.csv('https://www.dropbox.com/s/fuihnmk8fr0hozb/cities.csv?dl=1')
Εναλλακτικό αν δεν δουλεύει το παραπάνω:
cities <- read.csv("https://raw.githubusercontent.com/kantale/biol-109/main/cities.csv")
Κάντε copy-paste αυτή την εντολή.
Το data.frame cities
περιέχει τις εξής στήλες:
- names: Το όνομα της πόλης
- population: Ο πληθυσμός της πόλης (απογραφή 2011)
- region: Η περιφέρεια στην οποία ανήκει η πόλη
Χρησιμοποιώντας το data frame cities, απαντήστε με κώδικα R στο ερώτημα:
Ποιος είναι ο μέσος όρος του πληθυσμού όλων των πόλεων της Ελλάδας με πληθυσμό μικρότερο από 100.000;
Σε αυτή τη σελίδα: https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Greece υπάρχει μία λίστα με τον πληθυσμό των Ελληνικών πόλεων.
Μπορείτε να κατεβάσετε ένα μέρος από τον πίνακα αυτό σε μορφή R data frame με την εντολή:
cities <- read.csv('https://www.dropbox.com/s/fuihnmk8fr0hozb/cities.csv?dl=1')
Εναλλακτικό αν δεν δουλεύει το παραπάνω:
cities <- read.csv("https://raw.githubusercontent.com/kantale/biol-109/main/cities.csv")
Κάντε copy-paste αυτή την εντολή.
Το data.frame cities
περιέχει τις εξής στήλες:
- names: Το όνομα της πόλης
- population: Ο πληθυσμός της πόλης (απογραφή 2011)
- region: Η περιφέρεια στην οποία ανήκει η πόλη
Χρησιμοποιώντας το data frame cities, απαντήστε με κώδικα R στο ερώτημα:
Ποια είναι η δεύτερη μικρότερη σε πληθυσμό πόλη της περιφέρειας Crete;
Σε αυτή τη σελίδα: https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Greece υπάρχει μία λίστα με τον πληθυσμό των Ελληνικών πόλεων.
Μπορείτε να κατεβάσετε ένα μέρος από τον πίνακα αυτό σε μορφή R data frame με την εντολή:
cities <- read.csv('https://www.dropbox.com/s/fuihnmk8fr0hozb/cities.csv?dl=1')
Εναλλακτικό αν δεν δουλεύει το παραπάνω:
cities <- read.csv("https://raw.githubusercontent.com/kantale/biol-109/main/cities.csv")
Κάντε copy-paste αυτή την εντολή.
Το data.frame cities
περιέχει τις εξής στήλες:
- names: Το όνομα της πόλης
- population: Ο πληθυσμός της πόλης (απογραφή 2011)
- region: Η περιφέρεια στην οποία ανήκει η πόλη
Χρησιμοποιώντας το data frame cities, απαντήστε με κώδικα R στο ερώτημα:
Ποια περιφέρεια της Ελλάδας έχει το δεύτερο μικρότερο πληθυσμό; (πληθυσμός μίας περιφέρειας = το άθροισμα των πληθυσμών των πόλεών της).
Σε αυτή τη σελίδα: https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Greece υπάρχει μία λίστα με τον πληθυσμό των Ελληνικών πόλεων.
Μπορείτε να κατεβάσετε ένα μέρος από τον πίνακα αυτό σε μορφή R data frame με την εντολή:
cities <- read.csv('https://www.dropbox.com/s/fuihnmk8fr0hozb/cities.csv?dl=1')
Εναλλακτικό αν δεν δουλεύει το παραπάνω:
cities <- read.csv("https://raw.githubusercontent.com/kantale/biol-109/main/cities.csv")
Κάντε copy-paste αυτή την εντολή.
Το data.frame cities
περιέχει τις εξής στήλες:
- names: Το όνομα της πόλης
- population: Ο πληθυσμός της πόλης (απογραφή 2011)
- region: Η περιφέρεια στην οποία ανήκει η πόλη
Χρησιμοποιώντας το data frame cities, απαντήστε με κώδικα R στο ερώτημα:
Ποιες πόλεις της περιφέρειας "Attica" έχουν πληθυσμό μικρότερο από τον μέσο όρο του πληθυσμού της περιφέρειας 'Crete';
Ο παρακάτω κώδικας:
genes <- data.frame(
name = unlist(lapply(c(1:10), function(x) { return (paste('Gene', x))})),
start = as.integer(runif(10, 1000, 2000)),
end = as.integer(runif(10, 2001, 3000))
)
Κάντε copy-paste αυτές τις εντολές.
Παράγει ένα τυχαίο data.frame με το όνομα genes το οποίο περιέχει τις ακόλουθες στήλες:
name
: το όνομα ενός γονιδίου.start
: μία θέση από όπου ξεκινάειend
: μία θέση όπου τελειώνει.
Γράψτε κώδικα R ο οποίος προσθέτει μία καινούργια στήλη στο genes με το όνομα length. Η στήλη αυτή θα περιέχει τη θέση που βρίσκεται η μέση του κάθε γονιδίου. Η μέση ενός γονιδίου ορίζεται ως: αρχή + (τέλος-αρχη)/2. Για παράδειγμα ένα γονίδιο που ξεκινάει στη θέση 500 και τελειώνει στη θέση 700 έχει σαν μέση τη θέση: 600.
Φτιάξτε ένα data frame που να περιέχει 20 γραμμές. Το data frame πρέπει να περιέχει τις εξής στήλες (δίνεται ΟΝΟΜΑ
: περιγραφή):
A
: περιέχει τυχαίες τιμές από το 1 μέχρι το 200B
: περιέχει τυχαίες τιμές από το 1 μέχρι το 200C
: περιέχει την ίδια τιμή με τη στήλη A αν η τιμή της στήλης A είναι μεγαλύτερη από τη τιμή της στήλης B, αλλιώς περιέχει τη τιμή της στήλης B.D
: περιέχει την απόλυτη τιμή της διαφοράς των στηλών A και B (η απόλυτη τιμή ενός αριθμούς n είναι:abs(n)
)E
: περιέχει τον μέσο όρο των τιμών της στήλης A και B.
Το παρακάτω data frame περιέχει τους βαθμούς που γράψανε στη πρόοδο και στο τελικό διαγώνισμα 10 φοιτητές:
grades <- data.frame(
name = unlist(lapply(1:10, function(x) paste('Student', x))),
proodos = c(9,6,5,8,1,1,9,8,6,8),
teliko = c(8,7,7,5,2,5,3,9,9,9)
)
Κάντε copy-paste αυτές τις εντολές.
Ας υποθέσουμε τα εξής:
- Η πρόοδος (
proodos
) μετράει για το 40% της τελικής βαθμολογίας - Το τελικό διαγώνισμα (
teliko
) μετράει για το 60% της τελικής βαιμολογίας. - Η βάση για να περάσει κάποιος το μάθημα είναι 5.
- Αν ένα μαθητής έχει γράψει λιγότερο από 4 στο τελικό δεν περνάει (ανεξάρτητα από τι έχει γράψει στη πρόοδο)
Γράψτε κώδικα σε R ο οποίος να υπολογίζει πόσοι φοιτητές πέρασαν το μάθημα.
Έστω το παρακάτω data frame:
samples <- data.frame(
name = unlist(lapply(1:10, function(x) paste('Student', x))),
mutation = c(TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE),
disease = c(TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE)
)
Κάντε copy-paste αυτές τις εντολές.
Αυτό το data frame περιέχει για κάθε έναν από 10 ανθρώπους την εξής πληροφορία: αν έχει μία μετάλλαξη (mutation) (TRUE
/FALSE
) και αν έχει μία ασθένεια (disease) (TRUE
/FALSE
).
Φτιάξτε μία συνάρτηση η οποία να παίρνει ως παράμετρο ένα data frame όπως το samples. H συνάρτηση θα πρέπει να επιστρέφει το πλήθος των ανθρώπων που έχουν τη μετάλλαξη αλλά δεν έχουν την ασθένεια.
Ο παρακάτω κώδικας:
genes <- data.frame(
name = unlist(lapply(c(1:10), function(x) { return (paste('Gene', x))})),
start = as.integer(runif(10, 1000, 2000))
)
genes['end'] <- genes['start'] + as.integer(runif(10, 300, 700))
Παράγει ένα τυχαίο data.frame με το όνομα genes το οποίο περιέχει τις ακόλουθες στήλες:
name
: το όνομα ενός γονιδίου.start
: μία θέση από όπου ξεκινάειend
: μία θέση όπου τελειώνει.
Κάντε copy-paste τον παραπάνω κώδικα.
Φτιάξτε μία συνάρτηση η οποία να παίρνει ως παράμετρο έναν data frame αυτού του είδος. Η συνάρτηση θα επιστρέφει ένα νέο data frame το οποία θα είναι το ίδιο με το genes. Απλά θα έχει τις ακόλουθες επιπλέον στήλες:
col_1350
: ΠεριέχειTRUE
αν το γονίδια έχει τη θέση 1350 (δηλαδή αν η αρχή του είναι μικρότερη ή ίση από το 1350 και το τέλος του μεγαλύτερο ή ίσο από το 1350)col_NOT_1700_1800
: ΠεριέχειTRUE
αν το γονίδιο ΔΕΝ έχει τη θέση 1750.
Ο παρακάτω κώδικας:
genes <- data.frame(
name = unlist(lapply(c(1:10), function(x) { return (paste('Gene', x))})),
start = as.integer(runif(10, 1000, 2000))
)
genes['end'] <- genes['start'] + as.integer(runif(10, 300, 700))
Παράγει ένα τυχαίο data.frame με το όνομα genes το οποίο περιέχει τις ακόλουθες στήλες:
name
: το όνομα ενός γονιδίου.start
: μία θέση από όπου ξεκινάει σε ένα γονιδίωμαend
: μία θέση όπου τελειώνει σε ένα γονιδίωμα.
Κάντε copy-paste τον παραπάνω κώδικα.
Φτιάξτε μία συνάρτηση η οποία να παίρνει ως παράμετρο έναν data frame αυτού του είδος. Η συνάρτηση θα επιστρέφει ένα νέο data frame το οποία θα είναι το ίδιο με το genes. Απλά θα έχει τις ακόλουθες επιπλέον στήλες:
col_1200_1500
Περιέχει το πλήθος των θέσεων του γονιδίου είναι μικρότερες από τη θέση 1350.col_NOT_1700_1800
Περιέχει το πλήθος των θέσεων του γονιδίου που είναι μεγαλύτερες από το 1750.
Η παρακάτω εντολή:
samples <- data.frame(
name = unlist(lapply(c(1:50), function(x) { return (paste('Sample', x))})),
weight = runif(50, 55, 100),
height = round(runif(50, 1.4, 1.9), 2)
)
Φτιάχνει ένα data frame με τις εξής στήλες:
name
: Το όνομα ενός ανθρώπουweight
: Το βάρος τουheight
: το ύψος του
Κάντε copy-paste τον παραπάνω κώδικα.
Προσθέστε μία νέα στήλη με το όνομα bmi.group. Η τιμή της νέας στήλης θα είναι σύμφωνα μα τον εξής κανόνα:
- Αν το bmi είναι μικρότερο ή ίσο από 18.5 τότε η τιμή της νέας στήλη είναι:
'underweight'
- Αν το bmi είναι μεγαλύτερο από 18.5 και μικρότερη ή ίσο από 25.0 τότε η τιμή της νέας στήλης είναι
'normal'
- Αν τo bmi είναι μεγαλύτερο από 25.0 τότε η τιμ΄γ τηε νέας στήλης είναι:
overweight
Θυμμίζουμε ότι το bmni είναι βάρος / ύψος2
Σε αυτό το λινκ:
https://docs.google.com/spreadsheets/d/14kP59eFgCoGh_zlvvtyfQyK58xxgIrTP2wUnZmBG1wY/edit?usp=sharing
Υπάρχει στο Google Sheets το αρχείο με τις βάσεις των πανελληνίων του 2020. Το αρχείο αυτό ΔΕΝ περιέχει ελληνικούς χαρακτήρες. Επίσης για αυτή την άσκηση ΔΕΝ χρειάζεται να το κατεβάσετε. Μπορείτε πολύ εύκολα να το φορτώσετε στην R με τη παρακάτω εντολή:
baseis <- read.csv(url('https://www.dropbox.com/s/v3ztdbznefr7qbr/baseis_gr.csv?dl=1'))
baseis <- baseis[baseis$EIDOS_THESIS == 'GEL GENIKH SEIRA HM. (NEO)',]
Κάντε copy-paste αυτήν την εντολή.
Αφού φορτώσετε αυτό το αρχείο, γράψτε κώδικα σε R η οποία να απαντάει στο ερώτημα:
Από τις σχολές που οι επιτυχόντες (στήλη: "EPITYXONTES") είναι από 100 εως 130 άτομα, ποια είναι αυτή με τα λιγότερα μόρια εισαγωγής (στήλη: "MORIA");
Hint: Η συνάρτηση which.min
επιστρέφει τη θέση του μικρότερου στοιχείου (όχι το μικρότερο)
Σε αυτό το λινκ:
https://docs.google.com/spreadsheets/d/14kP59eFgCoGh_zlvvtyfQyK58xxgIrTP2wUnZmBG1wY/edit?usp=sharing
Υπάρχει στο Google Sheets το αρχείο με τις βάσεις των πανελληνίων του 2020. Το αρχείο αυτό ΔΕΝ περιέχει ελληνικούς χαρακτήρες. Επίσης για αυτή την άσκηση ΔΕΝ χρειάζεται να το κατεβάσετε. Μπορείτε πολύ εύκολα να το φορτώσετε στην R με τη παρακάτω εντολή:
baseis <- read.csv(url('https://www.dropbox.com/s/v3ztdbznefr7qbr/baseis_gr.csv?dl=1'))
baseis <- baseis[baseis$EIDOS_THESIS == 'GEL GENIKH SEIRA HM. (NEO)',]
Κάντε copy-paste αυτήν την εντολή.
Αφού φορτώσετε αυτό το αρχείο, γράψτε κώδικα σε R ο οποίος να απαντάει στο ερώτημα:
Ποιες από τις σχολές του ιδρύματος του Πανεπιστημίου Κρήτης ("PAN. KRHTHS") έχουν περισσότερα μόρια εισαγωγής (στήλη "MORIA") από το μέσο όρο μορίων εισαγωγής όλων των σχολών του ιδρύματος του Πανεπιστημίου Ιωαννίνων ("PAN. IWANNINWN") ;
Σε αυτό το λινκ:
https://docs.google.com/spreadsheets/d/14kP59eFgCoGh_zlvvtyfQyK58xxgIrTP2wUnZmBG1wY/edit?usp=sharing
Υπάρχει στο Google Sheets το αρχείο με τις βάσεις των πανελληνίων του 2020. Το αρχείο αυτό ΔΕΝ περιέχει ελληνικούς χαρακτήρες. Επίσης για αυτή την άσκηση ΔΕΝ χρειάζεται να το κατεβάσετε. Μπορείτε πολύ εύκολα να το φορτώσετε στην R με τη παρακάτω εντολή:
baseis <- read.csv(url('https://www.dropbox.com/s/v3ztdbznefr7qbr/baseis_gr.csv?dl=1'))
baseis <- baseis[baseis$EIDOS_THESIS == 'GEL GENIKH SEIRA HM. (NEO)',]
Κάντε copy-paste αυτήν την εντολή.
Στη συνέχεια προσθέστε στο data frame baseis
τη στήλη με το όνομα "POSOSTO"
η οποία περιέχει το ποσοστό των επιτυχόντων ως προς το συνολικό αριθμό όλων των επιτυχόντων.
Σε αυτό το λινκ:
https://docs.google.com/spreadsheets/d/14kP59eFgCoGh_zlvvtyfQyK58xxgIrTP2wUnZmBG1wY/edit?usp=sharing
Υπάρχει στο Google Sheets το αρχείο με τις βάσεις των πανελληνίων του 2020. Το αρχείο αυτό ΔΕΝ περιέχει ελληνικούς χαρακτήρες. Επίσης για αυτή την άσκηση ΔΕΝ χρειάζεται να το κατεβάσετε. Μπορείτε πολύ εύκολα να το φορτώσετε στην R με τη παρακάτω εντολή:
baseis <- read.csv(url('https://www.dropbox.com/s/v3ztdbznefr7qbr/baseis_gr.csv?dl=1'))
baseis <- baseis[baseis$EIDOS_THESIS == 'GEL GENIKH SEIRA HM. (NEO)',]
Κάντε copy-paste αυτήν την εντολή.
Γράψτε κώδικα σε R ο οποίος παράγει ένα matrix το οποίο θα έχει τόσες γραμμές ώσες τα διαφορετικά ιδρύματα (στήλη: "IDRYMA"
) και έχει 2 στήλες.
- Η 1η στήλη περιέχει το πλήθος από σχολές του αντίστοιχου ιδρύματος
- Η 2η στήλη περιέχει το άθροισμα από εισαχθέντες για το αντίστοιχο ίδρυμα
Σε αυτό το λινκ:
https://docs.google.com/spreadsheets/d/14kP59eFgCoGh_zlvvtyfQyK58xxgIrTP2wUnZmBG1wY/edit?usp=sharing
Υπάρχει στο Google Sheets το αρχείο με τις βάσεις των πανελληνίων του 2020. Το αρχείο αυτό ΔΕΝ περιέχει ελληνικούς χαρακτήρες. Επίσης για αυτή την άσκηση ΔΕΝ χρειάζεται να το κατεβάσετε. Μπορείτε πολύ εύκολα να το φορτώσετε στην R με τη παρακάτω εντολή:
baseis <- read.csv(url('https://www.dropbox.com/s/v3ztdbznefr7qbr/baseis_gr.csv?dl=1'))
baseis <- baseis[baseis$EIDOS_THESIS == 'GEL GENIKH SEIRA HM. (NEO)',]
Κάντε copy-paste αυτήν την εντολή.
Αφού φορτώσετε αυτό το αρχείο, γράψτε κώδικα σε R ο οποίος να απαντάει στο ερώτημα:
Ποιο είναι το άθροισμα των επιτυχόντων (στήλη: "EPITYXONTES"
) των σχολών που το όνομά τους (στήλη: "ONOMA_SXOLHS"
) περιέχει το αλφαριθμητικό BIOL
;
Δίνεται ότι η συνάρτηση grepl(a, b)
ελέγχει αν το αλφαριθμητικό a
υπάρχει στο b
.
Ένας φοιτητής πέτυχε τους ακόλουθους βαθμούς στο πρώτο εξάμηνο ενός τμήματος βιολογίας:
Zoologia: 7
Fysikh: 8
Ypologistes: 9
Xhmeia: 6
Φτιάξτε ένα barplot (ραβδόγραμμα) με αυτούς τους βαθμούς.
Ένας φοιτητής πέτυχε τους ακόλουθους βαθμούς στο πρώτο εξάμηνο ενός τμήματος βιολογίας (σε πρόοδο και τελικό):
Proodos Teliko
Zoologia: 7 6
Fysikh: 8 5
Ypologistes: 9 6
Xhmeia: 6 4
Φτιάξτε ένα barplot (ραβδόγραμμα) όπου η κάθε "μπάρα" θα είναι ένα μάθημα. Η κάθε μπάρα θα έχει δύο σκιάσεις. Η πρώτη θα δείχνει τον βαθμό της προόδου και η δεύτερη θα δείχνει τον βαθμό του τελικού.
Ένας φοιτητής πέτυχε τους ακόλουθους βαθμούς στο πρώτο εξάμηνο ενός τμήματος βιολογίας (σε πρόοδο και τελικό):
Proodos Teliko
Zoologia: 7 6
Fysikh: 8 5
Ypologistes: 9 6
Xhmeia: 6 4
Φτιάξτε ένα barplot (ραβδόγραμμα) όπου το κάθε μάθημα θα φαίνεται σαν 2 μπάρες. Η πρώτη θα δείχνει τον βαθμό της προόδου και η δεύτερη θα δείχνει τον βαθμό του τελικού.
Ένας φοιτητής πέτυχε τους ακόλουθους βαθμούς στο πρώτο εξάμηνο ενός τμήματος βιολογίας (σε πρόοδο και τελικό):
Proodos Teliko
Zoologia: 7 6
Fysikh: 8 5
Ypologistes: 9 6
Xhmeia: 6 4
Αν ο τελικός βαθμός υπολογίζεται ως 40% ο βαθμός της προόδου και 60% ο βαθμός του τελικού, φτιάξτε ένα barplot (ραβδόγραμμα) με τους τελικούς βαθμούς κάθε μαθήματος.
Φτιάξτε μια γραφική παράσταση της συνάρτησης f(x)=x44 - 5x3 + 3x2 + 7x +1 για x από -2 μέχρι 4. Χρησιμοποιήστε βήμα 0.01
hint:
seq(0, 1, by=0.01) # επιστρέφει ένα διάνυσμα από 0 μέχρι και 1 με βήμα 0.01
Φτιάξτε ένα plot το οποίο να έχει μαζί:
- Τη γραφική παράσταση της συνάρτησης f(x) = sin(x)
- Τη γραφική παράσταση της συνάρτησης f(x) = sin(x + π/2)
Πάρτε τιμές του χ από το -3 μέχρι το 3 με βήμα 0.01
hint:
seq(0, 1, by=0.01) # επιστρέφει ένα διάνυσμα από 0 μέχρι και 1 με βήμα 0.01
Δίνεται ότι το π (3.14...) είναι στην R: pi
.
Φτιάξτε μια γραφική παράσταση χρησιμοποιώντας γραμμές. Οι γραμμές πρέπει να είναι έτσι ώστε να φαίνεται (στο περίπου) το γράμμα "N".
Η γραφική παράστασή σας θα πρέπει να είναι κάπως έτσι:
To παρακάτω data frame περιέχει τους μέσους όρους για 8 εξάμηνα για δύο φοιτητές, τη Maria
και τον Kostas
:
grades <- data.frame(
semester.1 = c(6 , 7),
semester.2 = c(6.2, 7.4),
semester.3 = c( 7, 7.6),
semester.4 = c(7.3, 8),
semester.5 = c( 8, 8.2),
semester.6 = c(7.6, 8.4),
semester.7 = c(7.8, 7.9),
semester.8 = c( 8, 8.3),
row.names = c('Maria', 'Kostas')
)
Φτιάξτε ένα plot το οποίο να έχει δύο γραμμές.
- Η πρώτη γραμμή θα δείχνει τη διακύμανση της βαθμολογίας για τη
Maria
χρησιμοποιώντας χρώμα κόκκινο (red
) - Η δεύτερη γραμή θα δείχνει τη διακύμανση της βαθμολογίας για τον
Kostas
χρησιμοποιώντας χρώμα μπλε (blue
).
Το γράφημά σας θα πρέπει να είναι κάπως έτσι:
Το παρακάτω data frame περιέχει τους βαθμούς που πέτυχε ένας φοιτητής στα 3 κύρια μαθήματα σε κάθε ένα από τα 8 εξαμήνου μίας σχολής:
grades <- data.frame(
semester.1 = c(6 , 7, 5.1),
semester.2 = c(6.2, 7.4, 6.5),
semester.3 = c( 7, 7.6, 6.6),
semester.4 = c(7.3, 8, 6.7),
semester.5 = c( 8, 8.2, 7.2),
semester.6 = c(7.6, 8.4, 7.8),
semester.7 = c(7.8, 7.9, 6.5),
semester.8 = c( 8, 8.3, 6.9),
row.names = c('lesson.1', 'lesson.2', 'lesson.3')
)
- Υπολογίστε τον μέσο όρο των βαθμών του για κάθε εξάμηνο.
- Φτιάξτε ένα plot το οποίο θα δείχνει πως κυμάνθηκε αυτός ο μέσος όρος.
Το γράφημα θα πρέπει να είναι κάπως έτσι:
Τρέχοντας το παρακάτω κομμάτι κώδικα δημιουργείται ένα data frame 50 γραμμών μς τις παρακάτω στήλεςς:
- Η στήλη
gender
περιέχει το φύλο (female, male) - Η στήλη
age
περιέχει την ηλικία - η στήλη
disease
περιέχειTRUE
σε αυτούς που εχουν μία ασθένεια καιFALSE
σε αυτούς που δεν την έχουν.
samples <- data.frame(
gender = sample(c('female', 'male'), size = 50, replace = TRUE),
age = as.integer(runif(n = 50, min = 20, max = 60)),
disease = sample(c(TRUE, FALSE), size = 50, replace = TRUE)
)
Φτιαξτε ενα barplot που να έχει 2 μπάρες. Κάθε μπάρα θα εκπροσωπεί και ένα φύλο. Κάθε μπάρα θα έχει δύο σκιάσεις: μία που θα δείχνει το πλήθος αυτών που έχουν την ασθένεια (disease) και μία το πλήθος αυτών που δεν την έχουν.
Το πλοτ θα πρέπει να είναι κάπως έτσι:
- ΠΡΟΣΟΧΗ Αυτό είναι ένα plot για τα τυχαία δεδομένα που παρήγαγε σε εμένα. Το δικό σας ίσως να διαφέρει λίγο.
- Σημείωση: Βάλτε στο μέιλ με τις απαντήσεις σας ΜΟΝΟ τον κώδικα που παράγει το γράφημα. Όχι το ίδιο το γράφημα.
Το παρακάτω data frame περιέχει τους βαθμούς που πέτυχε ένας φοιτητής στα 3 κύρια μαθήματα σε κάθε ένα από τα 8 εξαμήνου μίας σχολής:
grades <- data.frame(
semester.1 = c(6 , 7, 5.1),
semester.2 = c(6.2, 7.4, 6.5),
semester.3 = c( 7, 7.6, 6.6),
semester.4 = c(7.3, 8, 6.7),
semester.5 = c( 8, 8.2, 7.2),
semester.6 = c(7.6, 8.4, 7.8),
semester.7 = c(7.8, 7.9, 6.5),
semester.8 = c( 8, 8.3, 6.9),
row.names = c('lesson.1', 'lesson.2', 'lesson.3')
)
Φτιάξτε ένα barplot το οποίο θα έχεις τόσες ράβδους (μπάρες), ώσες και τα τρίμηνα. Κάθε ράβδος θα έχει 3 σκιάσεις μία για κάθε μάθημα. Το πλοτ θα πρέπει να είναι κάπως έτσι:
- Φτιάξτε ένα διάνυσμα με το όνομα
a
με 100 τυχαίες τιμές από το -1 μέχρι το 1 - Φτιάξτε ένα διάνυσμα με το όνομα
b
με 100 τυχαίες τιμές από το -1 μέχρι το 1 - Φτιάξτε ένα scatter plot (συζευγμένα δεδομένα) με τα σημεία που ορίζονται στο επίπεδο όπου X=a και Y=b. Δηλαδή το scatter plot θα δείχνει πως κατανέμονται στον χώρο τα 100 τυχαία σημεία που φτιάξατε.
Το σημεία που απέχουν απόσταση μικρότερη ή ίση με 1 από το κέντρο (0,0) των αξόνων πρέπει να είναι κόκκινα. Το σημεία που απέχουν απόσταση μεγαλύτερη από 1 από το κέντρο (0,0) των αξόνων πρέπει να είναι μπλε.
Η απόσταση ενός σημείου x,y από την αρχή των αξόνων δίνεται από την εξίσωση:
d = sqrt( x2 + y2 )