2017-06-18 5 views
0

Ich kann nicht scheinen, hier eine Antwort zu finden. Ich habe einen Datenrahmen mit 800k Zeilen. Ich möchte über jede Zeile iterieren, den Wert einer Zeichenfolge in einer Spalte an die Google Translate API übergeben und dann die Übersetzung zu einer anderen Spalte in dieser Zeile hinzufügen. Wenn ich es so mache, gibt es mir nur die Werte aus der ersten Zeile für den gesamten Datenrahmen (df$word, und df$heading) und reproduziert es in jeder Zeile danach. Was ich will ist, um den Wert $word in Zeile 1 zu erhalten, ich möchte es mit der API übersetzen und diese Übersetzung den Wert $fr_translation in Zeile 1 machen. Ich möchte dies für jede einzelne Zeile tun. Ich bin sicher, es ist etwas einfach, aber ich bin ziemlich neu für R. Hier ist der Code, der für die Übersetzung funktioniert, aber nicht für jede einzelne Zeile:Iterating durch die Zeilen ein Dataframe und Ändern des Werts einer Spalte basierend auf einem anderen

library(translate) 
set.key("my_key") 

for(i in seq_len(nrow(df))){ 
    df$fr_translation <- translate(df$word, 'en', 'fr') 
    df$fr_heading <- translate(df$heading, 'en', 'fr') 
} 

Antwort

0

Sie nicht verweisen auf die i ten Zeile bei jeder Iteration. Fix das Teil innerhalb der Schleife, um so zu sein:

df$fr_translation[i] <- translate(df$word[i], 'en', 'fr') 
    df$fr_heading[i] <- translate(df$heading[i], 'en', 'fr') 
+0

Danke Steven, wusste, dass es etwas einfaches war. Sehr geschätzt – miltonjbradley

+0

Glücklich zu helfen. Wenn diese Antwort oder eine andere Antwort Ihr Problem gelöst hat, markieren Sie diese als akzeptiert. –

Verwandte Themen