Заполните столбец данных на основе общей пары значений с другим кадром данных - PullRequest
0 голосов
/ 21 июня 2019

У меня есть фрейм данных dtshp

id=c(0,0)
long<-c(140.9619,140.9626   )
lat<-c(-35.79979,-35.77946)
order<-c(1,2)
hole<-c(FALSE,FALSE)
piece<-c(1,1)
group<-c(0.1,0.1)
dtshp<-data.frame(id,long,lat,order,hole,piece,group)

и фрейм данных dt

Town<-c("WATSONIA","NORTH MELBOURNE")
lat<-c(-35.79979,-35.77946)
long<-c(140.9619,140.9626)
pop<-c(1232131,213312)
dt<-data.frame(Town,lat,long,pop)
dt["id"] <- NA

Как можно заполнить значения dt$id значениями dtshp$id когда у них есть общая пара lat и long?

Ответы [ 2 ]

2 голосов
/ 21 июня 2019
library(dplyr)
dt %>% 
  left_join(dtshp, by = c("Longitude" = "long", "Latitude" = "lat"))

Это создаст столбцы в объединенном фрейме данных для id.x и id.y, поскольку оба фрейма данных имеют столбец для id.Вы можете сначала удалить его из фрейма данных dt или использовать mutate / transmute / select после объединения, чтобы выбрать нужные столбцы.

1 голос
/ 21 июня 2019
dt$id <- dtshp[dtshp$long == dt$long & dtshp$lat == dt$lat,]$id

, что дает:

           Town       lat     long     pop id
       WATSONIA -35.79979 140.9619 1232131  0
NORTH MELBOURNE -35.77946 140.9626  213312  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...