[程式] R的資料替換
----------------------------------------------------------------------
[軟體程式類別]:
R
[程式問題]:
資料整理
[軟體熟悉度]:
中(3個月到1年)
[問題敘述]:
手上有一個資料的替換表(Excel格式),先姑且較做A資料表,有兩個變數,分別是X(健保碼)
以及Y(ATC code)
另外資料的原始檔,先叫做B好了,有一個變數名稱是Z(健保碼),我需要將Z這個變數,利用A
資料表提供的資訊,將所有相應的Z(健保碼)轉換成Y(ATC code)
我已經爬過版上之前的文章了,也做了一些的嘗試,但我發現之前文章所示範程式碼僅能處
理X為1,2,3,4的資料
[程式範例]:
輸入資料的部分(以模擬資料為例):
A=data.frame(c("AAA","BBB","CCC","ABC"),c("A01","B01","C01","A02"))
names(A)=c("X","Y")
B=data.frame(c("00001","00002","00003","00004","00005"),c("DDD","BBB","AAA","CCC","BBB"))
names(B)=c("ID","Z")
在此階段已有兩個資料夾分別為A以及B
A:
X Y
1 AAA A01
2 BBB B01
3 CCC C01
4 ABC A02
B:
ID Z
1 00001 DDD
2 00002 BBB
3 00003 AAA
4 00004 CCC
5 00005 BBB
我的目標有兩個(兩者擇一應該就可以了)
第一個目標:直接將B變成以下的樣子
B:
ID Z Z_new
1 00001 DDD <NA>
2 00002 BBB B01
3 00003 AAA A01
4 00004 CCC C01
5 00005 BBB B01
第二個目標:將A資料表變成這樣
A:
Y
AAA A01
BBB B01
CCC C01
如果達成第二個目標,似乎就可以使用下面這個程式碼達到第一個目標:
B$Z_new=A$Y[B$Z]
我現在已經大概可以理解上述程式碼的功用了,大概就是將A$Y視為一個函數,將第一個B$Z
中的第一個factor轉變成A01,第二個factor轉變成B01,依此類推
但由於我手上的A資料比B資料有更多東西,因此若先將X排序也沒有辦法
懇請各位大大幫我解惑,感恩!
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.60.122.8
→
11/29 16:32, , 1F
11/29 16:32, 1F
→
11/29 16:36, , 2F
11/29 16:36, 2F
→
11/29 16:38, , 3F
11/29 16:38, 3F
→
11/29 16:43, , 4F
11/29 16:43, 4F
→
11/29 16:43, , 5F
11/29 16:43, 5F
→
11/29 16:44, , 6F
11/29 16:44, 6F
→
11/29 16:45, , 7F
11/29 16:45, 7F
→
11/29 17:33, , 8F
11/29 17:33, 8F
→
11/29 17:33, , 9F
11/29 17:33, 9F
推
11/29 18:57, , 10F
11/29 18:57, 10F