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

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

Δημοσ.

Τη βοήθειά σας παιδιά,

 

Έχω γράψει ένα μικρό κομμάτι κώδικα σε R, όχι τίποτα σπουδαίο, απλά κάνει κάποιους υπολογισμούς βάσει κάποιων πεδίων σε ένα data frame και στο τέλος δημιουργεί ένα νέο πεδίο και γράφει εκεί το αποτέλεσμα.Επειδή όμως θα χρειαστεί σε πολλά αρχεία ο κώδικας, είπα να το κάνω function με όρισμα κάποιο data frame...Και κάπου εκεί ξεκινά το πρόβλημα:

 

Όταν ανοίξω αγκύλες και βάλω μέσα τον κώδικα

 

my_function <- function(dataframe) {

 

My code goes here

 

}

 

ξαφνικά, δε δουλεύει.Κάνω κάτι λάθος ως προς τους κανόνες της R;

Δημοσ.

Τη βοήθειά σας παιδιά,

 

Έχω γράψει ένα μικρό κομμάτι κώδικα σε 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 αν θες

Δημοσ.

Το σκέφτηκα ότι είναι πιθανό να φταίει η φύση του 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.

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

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

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

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

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

Σύνδεση

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

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