2017-11-28 1 views
0

を置き換える適用:dplyr:ファイルから行を読み取り、スクリプトは、データフレーム内の文字列を置換するには、次のdplyrラインを実行機能

data <- data %>% mutate(city=replace(city, city=="Lower East, NY", "Manhattan, NY")) 
data <- data %>% mutate(city=replace(city, city=="East Palo Alto, CA", "Palo Alto, CA")) 
.. (more than 100 replacements) 

質問:

はすべて置くことが可能であろう関連する置換を外部の.txtファイル(またはタブ?)にコピーし、そのファイル内のすべての行にわたってこの関数を実行しますか? dplyrソリューションが高く評価されました。

ここで大きなサポートをいただき、ありがとうございました。あなたはcity正確があなたの元データファイルに都市と一致する2つの列citynew_city、外部.csvファイルを作成する場合

+1

dplyr::coalesce()は、キー/値を作成して使用することができます現在のデータセットの値を置き換えるマージを行います。 ( "Manhattan、NY"、 "Palo Alto、CA")、stringsAsFactors = FALSEのように、keyvaldat akrun

+0

'ユニーク(データ$都市) 'を' .csv'としてエクスポートすることをお勧めしますキー/値テーブルのLHS。 – Mako212

答えて

1

、あなたはdplyr::left_join()

library(tidyverse) 

# read in your new, two column csv 
replacementcities <- read.csv('replacement-cities.csv') 

fixeddata <- data %>% 
    # join the two data frames where the city columns match 
    left_join(replacementcities, by = 'city') %>% 

    # replace city with whatever is not NA, using new_city first 
    mutate(city = coalesce(new_city, city)) %>% 

    # drop the, now unnecessary, new_city column 
    select(-new_city) 
関連する問題