Lanike71 Δημοσ. 16 Σεπτεμβρίου 2015 Δημοσ. 16 Σεπτεμβρίου 2015 Τη βοήθειά σας παιδιά, Έχω γράψει ένα μικρό κομμάτι κώδικα σε R, όχι τίποτα σπουδαίο, απλά κάνει κάποιους υπολογισμούς βάσει κάποιων πεδίων σε ένα data frame και στο τέλος δημιουργεί ένα νέο πεδίο και γράφει εκεί το αποτέλεσμα.Επειδή όμως θα χρειαστεί σε πολλά αρχεία ο κώδικας, είπα να το κάνω function με όρισμα κάποιο data frame...Και κάπου εκεί ξεκινά το πρόβλημα: Όταν ανοίξω αγκύλες και βάλω μέσα τον κώδικα my_function <- function(dataframe) { My code goes here } ξαφνικά, δε δουλεύει.Κάνω κάτι λάθος ως προς τους κανόνες της R;
viper2005 Δημοσ. 16 Σεπτεμβρίου 2015 Δημοσ. 16 Σεπτεμβρίου 2015 Τη βοήθειά σας παιδιά, Έχω γράψει ένα μικρό κομμάτι κώδικα σε R, όχι τίποτα σπουδαίο, απλά κάνει κάποιους υπολογισμούς βάσει κάποιων πεδίων σε ένα data frame και στο τέλος δημιουργεί ένα νέο πεδίο και γράφει εκεί το αποτέλεσμα.Επειδή όμως θα χρειαστεί σε πολλά αρχεία ο κώδικας, είπα να το κάνω function με όρισμα κάποιο data frame...Και κάπου εκεί ξεκινά το πρόβλημα: Όταν ανοίξω αγκύλες και βάλω μέσα τον κώδικα my_function <- function(dataframe) { My code goes here } ξαφνικά, δε δουλεύει.Κάνω κάτι λάθος ως προς τους κανόνες της R; αν θυμαμαι καλα εκει που μπαινει το (dataframe) θα ειναι το πληθος των inputs (x,y,z etc) επισης, το dataframe ειναι κατι massive και εχει και καποιους περιορισμους. edit, μοιρασου το code αν θες
Lanike71 Δημοσ. 16 Σεπτεμβρίου 2015 Μέλος Δημοσ. 16 Σεπτεμβρίου 2015 Το σκέφτηκα ότι είναι πιθανό να φταίει η φύση του dataframe...Λες να δοκιμάσω με matrix; Ο κώδικας είναι αυτός (βρίσκει σε κάθε row πόσοι άρτιοι αριθμοί υπάρχουν) : even=0 for(j in 1:nrow(myfile)){ for(i in 1:ncol(myfile){ num <- myfile[j,i] if(num %% 2 == 0) even <- even+1 } myfile[j,(ncol(myfile)+1)]=even even=0 } Αν τον τρέξω σε κονσόλα με myfunction(myfile), δεν αλλάζει τίποτα στο dataframe. Τελικά δεν είχα μόνο εγώ το ίδιο πρόβλημα... http://stackoverflow.com/questions/3969852/update-data-frame-via-function-doesnt-work Είχε να κάνει με τα διάφορα "περιβάλλοντα" της R.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα