Можно ли ссылаться на объект, то есть на таблицу, внутри отдельной таблицы в R? - PullRequest
1 голос
/ 10 мая 2019

У меня есть R-скрипт, который генерирует таблицу, содержащую дни и расстояния для отдельного животного:

т.е.

bill_distance_table =  

|day|distance| date       |  

| 1 | 100    | 04-10-2018 |  
| 2 | 150    | 04-11-2018 |  
| 3 | 125    | 04-12-2018 |  

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

т.е.

global_table:  

|animal|  name    | table_reference     |  

| 1    |   bill   | bill_distance_table |  
| 2    |   joe    | joe_distance_table  |  
| 3    |   sue    | sue_distance_table  |  

global_table[1,3] 

(would return)

|day|distance| date       |  

| 1 | 100    | 04-10-2018 |  
| 2 | 150    | 04-11-2018 |  
| 3 | 125    | 04-12-2018 |  

Я хотел бызнаете, это возможно с R?Чтобы вложить таблицы в таблицы?

Или, проще ли будет создать список таблиц и просто ссылаться на сохранение ссылочных ключей в глобальной таблице?

Спасибо!

ЧЧ

Я новичок в R и не уверен в его потенциале с точки зрения Объекта ..

1 Ответ

0 голосов
/ 10 мая 2019

Да, используя пакет tidyr, но данные уже должны быть в одном кадре, например ::1001*

# Give each a dataframe a column with the appropriate name.
bill_dist$animal <- "bill"
joe_dist$animal <- "joe"
sue_dist$animal <- "sue"

# Bind dataframes together.
dist_df <- rbind(bill_dist, joe_dist, sue_dist)

dist_df

#### OUTPUT ####

# A tibble: 9 x 4
    day  dist date       animal
  <int> <dbl> <date>     <chr> 
1     1   100 2018-10-04 bill  
2     2   150 2018-11-04 bill  
3     3   125 2018-12-04 bill  
4     1   130 2018-10-04 joe   
5     2   110 2018-11-04 joe   
6     3    90 2018-12-04 joe   
7     1   160 2018-10-04 sue   
8     2   155 2018-11-04 sue   
9     3   140 2018-12-04 sue   

Этот тип "длинного" фрейма данных, вероятно, более полезен, чем вложенный фрейм данных, т. Е. Им легче манипулировать для анализа, поэтому попробуйте придерживаться этого. Тем не менее, когда у вас есть этот фрейм данных, вы можете запустить следующее, чтобы получить вложенный фрейм данных:

library(tidyr)

nested_dist_df <- nest(dist_df, -animal)

nested_dist_df

#### OUTPUT ####

# A tibble: 3 x 2
  animal data            
  <chr>  <list>          
1 bill   <tibble [3 × 3]>
2 joe    <tibble [3 × 3]>
3 sue    <tibble [3 × 3]>

Теперь вы можете получить доступ к отдельным фреймам данных, используя синтаксис [[:

nested_dist_df[[1, 2]]

#### OUTPUT ####

# A tibble: 3 x 3
    day  dist date      
  <int> <dbl> <date>    
1     1   100 2018-10-04
2     2   150 2018-11-04
3     3   125 2018-12-04
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...