在行中迭代数据帧并根据另一个

时间:2017-06-18 01:37:15

标签: r dataframe replace google-translate

我似乎无法在这里找到答案。我有一个有800k行的数据帧。我想迭代每一行,将一列中的字符串值传递给Google Translate API,然后将翻译添加到该行中的另一列。当我这样做时它只给出了整个数据帧(df$worddf$heading)的第一行的值,并在之后的每一行中再现它。我想要的是在第1行中获取$word的值,我想用API翻译它,并使第1行中的$fr_translation的值为{I}。我想为每个人执行此操作行。我确信它很容易,但我对R很新。以下是适用于翻译但不适用于每一行的代码:

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')
}

1 个答案:

答案 0 :(得分:0)

您在每次迭代时都没有引用i行。将部件固定在循环内部,如下所示:

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