Замените значения в кадре данных в R, используя клавишу - PullRequest
0 голосов
/ 20 января 2019

У меня есть набор данных географических кодов для местных советов и округов (geog_lookup) - он предоставляет ключ к тому, какие советы принадлежат к каким округам.

У меня также есть «грязный» набор данных (тест), который дает информацию как для округов, так и для советов, и я хочу преобразовать все это в советы, используя ключ.

Кто-нибудь знает, как это сделать? Вот что у меня так далеко?

for (i in geog_lookup[,1]){
  test[,1]<-replace(test[,1], n, value="i")}


> head(geog_lookup)
   DataZone InterZone   Council
1 S01000001 S02000003 S12000033
2 S01000002 S02000001 S12000033
3 S01000003 S02000001 S12000033
4 S01000004 S02000001 S12000033
5 S01000005 S02000003 S12000033
6 S01000006 S02000003 S12000033



> head(test)
   Location Year Reference.Area Dwellings.AC Dwellings.DE Dwellings.FH Total.Crime Hosp.Admissions House.Price
16        i 2008      S01000001         43.5         32.2         24.4          NA            1555      148500
17        i 2009      S01000001         43.5         32.2         24.4          NA             917      122750
18        i 2010      S01000001         44.3         31.7         24.0          NA             875      135000
19        i 2011      S01000001         44.0         31.5         24.5          NA             870      179000
20        i 2012      S01000001         44.3         31.1         24.6          NA            1174      155556
21        i 2013      S01000001         44.2         30.8         25.0          NA              NA      118118
   Job.Seekers Waste.Percapita Percent.Recycling Proximity.Derelict
16       0.350              NA                NA               95.2
17       0.700              NA                NA               95.2
18       0.325              NA                NA               95.0
19       0.975              NA                NA               95.0
20       0.650              NA                NA               93.1
21          NA              NA                NA               90.9

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Вот решение для базового R.

merge(test, geog_lookup, by.x="Reference.Area", by.y="DataZone")
0 голосов
/ 20 января 2019

Вот как это сделать с dplyr:

library(dplyr)
test2 <- test %>%
  left_join(geog_lookup, by = c("Reference.Area" = "DataZone"))

Это выполнит соединение с базой данных (например, VLOOKUP в Excel), которое добавит столбцы из geog_lookup, где Зона данных соответствует Reference.Area в ваших исходных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...