Git Product home page Git Product logo

bor's Introduction

CRAN_Status_Badge Rdoc Build Status DOI status

bor

Overview

bor is an R package designed to transform focal observations' data, referring to the occurrence of social interaction events, into asymmetric data matrices. For example, the number of times (events) a chimpanzee observes other group members. Each matrix cell provides counts on the number of times a specific type of social interaction was initiated by the row subject and directed to the column subject.

Currently, the package includes three objects:

  • dtable() a function that transforms raw focal observations' data into a data frame more suitable for data analysis

  • countb() a function that computes asymmetric data matrices, separately for each observer and type of social interaction, from a data frame with a structure similar to that of the output of dtable() function

  • ex_field_data a data frame containing an example of raw focal observations' data; data frames passed to dtable() function should have this structure.

For more information about this package the user can read the R documentation for bor (click the "rdocumentation" badge at the top of the README file). To learn more details about each bor object the user can type ?dtable, ?countb and ?ex_field_data in his R environment.

Installation

# to install R packages from github you need the devtools package
# to install devtools from CRAN type:
install.packages("devtools")

# to install bor from github type:
devtools::install_github("davidnsousa/bor")

Details

ex_field_data details the required structure of raw focal observations' data that can be passed to the dtable() function. Below we present the first lines of this data frame:

head(ex_field_data)
##   id1       act obs
## 1  s2         x   1
## 2  s3         0   1
## 3  s5         x   1
## 4  s1      +.s4   1
## 5  s1         x   1
## 6  s5 s4.-;s2.+   1
  • id1 - focal subject's identification code.

  • This example includes 9 different subjects (coded s1 to s9).

  • act - recorded social interactions (SIs) in each focal sample.

  • In this example two different SIs were recorded (coded + and -); SIs codes, subjects' id codes, and separation characters should not overlap.

  • The . character is used to separate subjects' id codes from the SIs' codes, and the ; character is used to separate different SIs occurring within the same focal sample.

  • Whenever a subject's id appears before a SI's code it means that, that subject initiated a SI with the focal subject (see row 6 of ex_field_data); whenever a subject's id appears after the SI's it means that the focal subject (id1 column) initiated a SI with that subject (see row 4).

  • For example, in ex_field_data, the 4th row indicates that the focal subject s1 initiated a + social interaction with subject s4, while the 6th row indicates that the focal subject s5 was involved in two social interactions- the first initiated by s4 (-), the second (+) initiated by s2.

  • 0s in this column refer to focal observations where no SIs were recorded, and xs refer to focal observations where the focal subject was unavailable for observation.

  • obs - observer's identification code.

  • This example includes 2 different observers (coded 1 and 2).

See ?ex_field_data for further details. dtable() function does not require that the input data frame has matching column names to that of ex_field_data, but input data frame should include three columns, with the type of data as described above and in the same column order.

Example

The following uses dtable() function to convert ex_field_data data frame (see details above) in a new data frame (e.g., data) that can be passed to countb() function. dtable() function requires that recorded social interactions' codes are provided (bset argument). In ex_field_data these codes are + and -. Below we leave bsep, asep, missing and noc dtable()'s arguments at their default values (".", ";", "x", "0" respectively). See ?dtable for further details.

 b <- c("+","-")
 data <- dtable(ex_field_data, bset = b)
 head(data)
##   id1  id2 sender_id1 behavior no_occurrence missing observer
## 1  s2 <NA>         NA     <NA>            NA       1        1
## 2  s3 <NA>         NA     <NA>             1      NA        1
## 3  s5 <NA>         NA     <NA>            NA       1        1
## 4  s1   s4          1        +            NA      NA        1
## 5  s1 <NA>         NA     <NA>            NA       1        1
## 6  s5   s4          0        -            NA      NA        1

data object has 7 columns:

  • id1- focal subject's identification code.

  • id2- identification code of the social interactions partner.

  • sender_id1 - indicates whether the focal subject was the initiator/sender (coded 1) or the target of the social interaction (coded 0).

  • behavior - indicates the code of the social interaction recorded.

  • no_occurrence - indicates whether no social interaction were recorded (coded 1; NA otherwise).

  • missing - indicates whether the focal subject was unavailable for observation (coded 1; NA otherwise).

  • observer - observer's identification code.

countb() function can now be used on data to compute asymmetric data matrices, containing the number of times a specific type of social interaction was initiated by the row subject and directed to the column subject (target), separately for each social interaction and for each observer. Data matrices are stored inside a list (e.g., observations).

  data2 <- countb(data)
  data2
## $`1`
## $`1`$`-`
##    s1 s2 s3 s4 s5
## s1  0  1  0  0  2
## s2  0  0  0  0  1
## s3  0  0  0  1  0
## s4  0  0  1  0  1
## s5  0  1  1  1  0
## 
## $`1`$`+`
##    s1 s2 s3 s4 s5
## s1  0  1  1  1  0
## s2  0  0  2  0  2
## s3  2  0  0  0  0
## s4  0  1  0  0  0
## s5  0  0  0  1  0
## 
## 
## $`2`
## $`2`$`-`
##    s1 s2 s3 s4 s5
## s1  0  0  1  2  0
## s2  0  0  0  3  0
## s3  0  1  0  1  0
## s4  0  2  1  0  1
## s5  1  1  1  0  0
## 
## $`2`$`+`
##    s1 s2 s3 s4 s5
## s1  0  0  1  0  0
## s2  0  0  0  2  0
## s3  0  1  0  2  1
## s4  0  0  1  0  0
## s5  1  0  1  0  0

data2 is a list of lists: one for each observer (in this example data2$`1` and data2$`2`). Inside each list there is one asymmetric interaction matrix per social interaction recorded (e.g., data2$`1`$`-`). Cells in these matrices provide counts on the number of times a specific type of social interaction was initiated by the row subject and directed to the column subject.

See ?countb for further details on the countb() function.

Contact

For more help or any further questions about this package the user can e-mail the maintainer from https://davidnsousa.github.io/. To contribute to this package the user can fork the package github repository and propose changes.

bor's People

Contributors

davidnsousa avatar joaordaniel avatar

Watchers

 avatar  avatar  avatar

Forkers

joaordaniel

bor's Issues

[REVIEW JOSS]: bor

Hi @davidnsousa, almost done!

There are few small stuffs to add in your repository:

  • Automated test
  • Community guidelines (how people can contribute and report issues)

In pratical words: you need to create a folder with a R script for tests, like here. Also you can see how do it better here; Please, add the contact and how to contribute with the package in the README.md (that is, how the users can get help? email? Github? How to contribute?).

Best,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.