ссылка на индексный фрейм данных и извлечение данных в случае совпадения - PullRequest
1 голос
/ 01 октября 2010

Я новичок в R и стремлюсь учиться, но я особенно застрял на том, что кажется относительно простой идеей.

У меня есть 2 кадра данных. Первый (муравьи) - это данные, относящиеся к ряду сайтов, каждый сайт имеет уникальный идентификатор, некоторые сайты имеют более одной строки данных. Это выглядит так:

 Site           Date          Time          Temp 
71             8-Jun-10       14:50:35       14.32  
71             8-Jun-10       14:51:29       14.31  
70             8-Jun-10       14:53:55       14.3      
70             8-Jun-10       14:54:09       14.3     
70             8-Jun-10       14:54:24       14.3      
69             8-Jun-10       14:56:30       14.28     

Второй (HRsites) - это индекс широт и долгот, связанных с каждым номером сайта.

Site    lat_52           long_00 
69      56.3075            9.1957 
70      56.4207            8.9147 
71      56.5208            8.6265  

То, что я хотел бы сделать, - это ... Если номера сайтов в двух информационных фреймах совпадают, я бы хотел, чтобы соответствующие лат и длинные данные, хранящиеся в «HRsites», были добавлены в дополнительные новые столбцы в фрейме данных «ants» .

Я вижу, что новый столбец добавлен муравьи $ lat_52 <- </p>

... и вот где я застрял, я не уверен в огромном диапазоне функций, доступных на R, и чувствую, что, возможно, я не ищу, используя совершенно правильный язык. Любая помощь будет принята с благодарностью .... даже если это просто термины функций, которые я должен искать.

1 Ответ

2 голосов
/ 01 октября 2010

Если я правильно понимаю ваш вопрос, вы хотите merge ответить на него "Сайтом".

> lines <- "Site Date Time Temp
+ 71 8-Jun-10 14:50:35 14.32
+ 71 8-Jun-10 14:51:29 14.31
+ 70 8-Jun-10 14:53:55 14.3
+ 70 8-Jun-10 14:54:09 14.3
+ 70 8-Jun-10 14:54:24 14.3
+ 69 8-Jun-10 14:56:30 14.28"
> 
> (ants <- read.table(con <- textConnection(lines),header=TRUE)); close(con)
  Site     Date     Time  Temp
1   71 8-Jun-10 14:50:35 14.32
2   71 8-Jun-10 14:51:29 14.31
3   70 8-Jun-10 14:53:55 14.30
4   70 8-Jun-10 14:54:09 14.30
5   70 8-Jun-10 14:54:24 14.30
6   69 8-Jun-10 14:56:30 14.28
> 
> lines <- "Site lat_52 long_00
+ 69 56.3075 9.1957
+ 70 56.4207 8.9147
+ 71 56.5208 8.6265"
> 
> (HRsites <- read.table(con <- textConnection(lines),header=TRUE)); close(con)
  Site  lat_52 long_00
1   69 56.3075  9.1957
2   70 56.4207  8.9147
3   71 56.5208  8.6265
> 
> (Data <- merge(ants,HRsites,by="Site"))
  Site     Date     Time  Temp  lat_52 long_00
1   69 8-Jun-10 14:56:30 14.28 56.3075  9.1957
2   70 8-Jun-10 14:53:55 14.30 56.4207  8.9147
3   70 8-Jun-10 14:54:09 14.30 56.4207  8.9147
4   70 8-Jun-10 14:54:24 14.30 56.4207  8.9147
5   71 8-Jun-10 14:50:35 14.32 56.5208  8.6265
6   71 8-Jun-10 14:51:29 14.31 56.5208  8.6265
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...