Προς το περιεχόμενο

Κώδικας στην R - Συμπλήρωση dataframe με δεδομένα από άλλο


satsok2

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα. Αν κάποιος γνωρίζει από R θα ήθελα μια βοήθεια στο παρακάτω.

Εχω 2 dataframes.  To 1o περιέχει Ονόματα και διευθύνσεις. Το 2ο περιέχει Ονόματα και Αντικείμενα που τους ανήκουν. Το ίδιο όνομα μπορεί να υπάρχει πολλές φορές.

Θέλω στο df1 να βάλω 2 επιπλέον στήλες :

  • Μια στήλη θα δείχνει , δίπλα στο κάθε όνομα πόσες φορές εμφανίζεται (/πόσα αντικείμενα έχει) στο df2.
  • Η άλλη στήλη θα έχει τα αντικείμενα του ατόμου αυτού. Οπως πχ στη φωτογραφία.

Δοκίμασα (τουλάχιστον) για την 1 από τις 2 στήλες να τα μετρήσω με table αλλά κάτι κάνω λάθος.

Μήπως μπορεί να βοηθήσει κάποιος; [1η μου εβδομάδα σε R]

CaptureDataframes.JPG

Επεξ/σία από satsok2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Δεν είναι ακριβώς αυτό που δουλεύω, απλά το παράδειγμα το έκανα για να δείξω τι θέλω.

Χοντρικά :

Name_Occurrences <-  as.data.frame(table(df2$Name))                           

[είδα ότι το table φτιάχνει πίνακα με όλες τις τιμές, και 2η στήλη πόσες φορές υπάρχουν αυτές] 
 

df1$Occurrences <- Name_Occurrences$Freq[match(df1$Name, Name_Occurrences$Name)] 

[φτιάχνω στο df1 μια στήλη occurrences που παίρνει από τη σειρά που έχω match το όνομα από το df1 με το όνομα από τον πίνακα Name_Occurrences και τότε γνωρίζοντας τη γραμμή παίρνει από τον πίνακα την 2η στήλη που αφορά συχνότητες]

 

Φαντάστηκα ότι μπορεί να υπάρχει κάτι απλό που απλά δε γνωρίζω.

Edit : Mόλις μου δούλεψε. Για το 2o θεμα κάτι - πως θα κάνω concatenate ολα τα belongings ενός ατόμου ;

Επεξ/σία από satsok2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πρέπει για το κάθε όνομα στον Α να φιλτράρεις τα δεδομένα στον B. Στόχος να πάρεις τα δεδομένα για κάθε όνομα σε μορφή vector και μετά κάνε paste

δηλαδή κάπως έτσι:

v=c('Car', 'book', 'bag')
paste(v, collapse = '_')

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οκ και εγω κατι τετοιο ειχα σκεφτει. Να φιλτραρω το df για το ονομα και να προσθετω τα strings (αν καταλαβα σωστα). Θα επανελθω αν χρειαστει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι ξεκίνα με ένα apply function στον πινακα Α όπου για κάθε Όνομα στην σχετική στήλη θα φιλτράρεις τις γραμμές του πίνακα Β με βάση το Όνομα

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...