traffic
次のような名前のファイルが1つあります。
city statenum casenum vnumber pnumber county accdate accday accmin accmon acctime
-1 6 23 1 1 47 1082010 8 50 1 150
0 6 25 1 1 73 1042010 4 0 1 2200
0 6 652 1 4 71 3282010 28 1 3 1901
1 6 1289 1 2 71 7152010 15 40 7 2140
4 6 1289 1 3 71 7152010 15 40 7 2140
1 6 1289 1 4 71 7152010 15 40 7 2140
そして、各列の数値コードが何を指しているかを教えてくれる一連の個別のファイル。たとえば、city
次のようなファイルがあります。
Code Definition
-1 Blank
0 NA
1 ACAMPO
2 ACTON
3 ADELANTO
4 ADIN
city
ファイル内のコードを使用して、のコード化された値を置き換えるにはどうすればよいtraffic
ですか?出力は次のようになります。
city statenum casenum vnumber pnumber county accdate accday accmin accmon acctime
Blank 6 23 1 1 47 1082010 8 50 1 150
NA 6 25 1 1 73 1042010 4 0 1 2200
NA 6 652 1 4 71 3282010 28 1 3 1901
ACAMPO 6 1289 1 2 71 7152010 15 40 7 2140
ADIN 6 1289 1 3 71 7152010 15 40 7 2140
ACAMPO 6 1289 1 4 71 7152010 15 40 7 2140
私がrecodeを使用して見たすべての解決策は、cars
パッケージの例のように、どの値がどの値に対応するかを明示的に示すことを含みます。代わりに、 ifmatchesの数値コードを文字recode(x, "c(1,2)='A'; else='B'")
列に置き換えます。city$Definition
traffic$city
city$Code
traffic$city
私は時々行うことができましたがtraffic<-merge(traffic, city, by.x = "city", by.y = "Code")
、これはこれを行うための便利な関数があるのに十分な一般的な操作であるように思われます。traffic$city<-traffic$Definition
traffic$Definition<-NULL
何度も繰り返すことなく、複数の列を複数のファイルの値に置き換えることができるソリューションのボーナスポイント。