LA Foundations badge

LASER Institute Foundation Learning Lab 1( edited)

Author

Rachel Ayieko

Published

July 18, 2025

The final activity for each learning lab provides space to work with data and to reflect on how the concepts and techniques introduced in each lab might apply to your own research.

To earn a badge for each lab, you are required to respond to a set of prompts for two parts:

Part I: Reflect and Plan

Use the institutional library (e.g. NCSU Library), Google Scholar or search engine to locate a research article, presentation, or resource that applies learning analytics analysis to an educational context or topic of interest. More specifically, locate a study that makes use of one of the data structures we learned today. You are also welcome to select one of your research papers.

  1. Provide an APA citation for your selected study.

    • Hershkovitz, A., Noster, N., Siller, H. S., & Tabach, M. (2024). Learning analytics in mathematics education: the case of feedback use in a digital classification task on reflective symmetry. ZDM–Mathematics Education, 56(4), 727-739.
  2. What types of data are associated with LA ?

    • log data
    • feedback use data
    • task performance
    • demographic data
  3. What type of data structures are analyzed in the educational context?

    • event tables of the log data Each row corresponds to a specific student action, such as:
      • Opening the task.

      • Clicking a feedback button.

      • Moving shapes or submitting answers.

    • Columns include: A table (dataframe)
      • demographic information, timestamp, event type, correct responses, the task
    • time stamps sequences
      • feedback
      • time spent
    • outcome variables
      • correct feedback after
      • correct feedback after
      • how the feedback is used
  4. How might this article be used to better understand a dataset or educational context of personal or professional interest to you?

    • First, helps to understand how students behave in a digital environment
    • how to incorporate feedback use in teacher preparation
    • How to structure a data-set to get meaningful information
    • biggest is equity and differentiating instruction
  5. Finally, how do these processes compare with what teachers and educational organizations already do to support and assess student learning?

    • I think the processes that are currently used by educational organizations are not efficient and some information may be missed out. The present process seems to be more efficient and provides several ways to explore and merge data.

Draft a research question of guided by techniques and data sources that you are potentially interested in exploring in more depth.

Q1.How do pre-service teachers engage with feedback in a mathematics content course using a digital problem solving environment .

Q2.How does their feedback relate to their performance on a task and reflective practice

  1. What data source(s) should be analyzed or discussed?

    • interaction with data
      • requesting feedback
      • answers
      • revising answers
      • movement between problems
    • task performance
    • reflections or journal entries
    • demographics and context data
  2. What is the purpose of your article?

    • First, address learners’ overall success in tasks, as learners could complete the task with full success if they pay close attention to the feedback, under-stand it, and act upon it.

    • Second, address the extent to which students dem-

      onstrate a behavior of not acting upon feedback, and how

      this behavior changes along the learning process.

  3. Explain the analytical level at which these data would need to be collected and analyzed.

    • From an analytical standpoint, the data should be analyzed using a count of the feedback on the correct and incorrect classifications to account for the responses. In a Learning Analytics setting, this could be further extended by integrating LA-derived variables (e.g., time spent on task, number of interactions with content) at the student level and aggregating them meaningfully for class- or school-level models.
  4. How, if at all, will your article touch upon the application(s) of LA to “understand and improve learning and the contexts in which learning occurs?”

    • The article contributes to Learning Analytics by providing a rigorous methodological approach that captures both individual and contextual influences on learning, thus supporting data-informed decisions to improve educational practice and equity.

Part II: Data Product

In our Learning Analytics code-along, we scratched the surface on the number of ways that we can wrangle the data.

Using one of the data sets provided in the data folder, your goal for this lab is to extend the Learning Analytics Workflow from our code-along by preparing and wrangling different data.

Or alternatively, you may use your own data set to use in the workflow. If you do decide to use your own data set you must include:

  • Show two different ways using select function with your data, inspect and save as a new object.

  • Show one way to use filter function with your data, inspect and save as a new object.

  • Show one way using arrange function with your data, inspect and save as a new object.

  • Use the pipe operator to bring it all together.

Feel free to create a new script in your lab 2 to work through the following problems. Then when satisfied add the code in the code chunks below. Don’t forget to run the code to make sure it works.

Instructions:

  1. Add your name to the document in author.

  2. Set up the first (or, two if using an Introduction) phases of the LA workflow below. I’ve added the wrangle section for you. You will need to Prepare the libraries necessary to wrangle the data.

  3. In the chunk called read-data: Import the sci-online-classes.csv from the data folder and save as a new object called sci_classes. Then inspect your data using a function of your choice.

# Type your code here
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.2     ✔ tibble    3.3.0
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
sci_classes <- read_csv ("data/sci-online-classes.csv")
Rows: 603 Columns: 30
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (6): course_id, subject, semester, section, Gradebook_Item, Gender
dbl (23): student_id, total_points_possible, total_points_earned, percentage...
lgl  (1): Grade_Category

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#load todyverse

sci_classes
# A tibble: 603 × 30
   student_id course_id     total_points_possible total_points_earned
        <dbl> <chr>                         <dbl>               <dbl>
 1      43146 FrScA-S216-02                  3280                2220
 2      44638 OcnA-S116-01                   3531                2672
 3      47448 FrScA-S216-01                  2870                1897
 4      47979 OcnA-S216-01                   4562                3090
 5      48797 PhysA-S116-01                  2207                1910
 6      51943 FrScA-S216-03                  4208                3596
 7      52326 AnPhA-S216-01                  4325                2255
 8      52446 PhysA-S116-01                  2086                1719
 9      53447 FrScA-S116-01                  4655                3149
10      53475 FrScA-S116-02                  1710                1402
# ℹ 593 more rows
# ℹ 26 more variables: percentage_earned <dbl>, subject <chr>, semester <chr>,
#   section <chr>, Gradebook_Item <chr>, Grade_Category <lgl>,
#   FinalGradeCEMS <dbl>, Points_Possible <dbl>, Points_Earned <dbl>,
#   Gender <chr>, q1 <dbl>, q2 <dbl>, q3 <dbl>, q4 <dbl>, q5 <dbl>, q6 <dbl>,
#   q7 <dbl>, q8 <dbl>, q9 <dbl>, q10 <dbl>, TimeSpent <dbl>,
#   TimeSpent_hours <dbl>, TimeSpent_std <dbl>, int <dbl>, pc <dbl>, uv <dbl>
#using glimpse
glimpse(sci_classes)
Rows: 603
Columns: 30
$ student_id            <dbl> 43146, 44638, 47448, 47979, 48797, 51943, 52326,…
$ course_id             <chr> "FrScA-S216-02", "OcnA-S116-01", "FrScA-S216-01"…
$ total_points_possible <dbl> 3280, 3531, 2870, 4562, 2207, 4208, 4325, 2086, …
$ total_points_earned   <dbl> 2220, 2672, 1897, 3090, 1910, 3596, 2255, 1719, …
$ percentage_earned     <dbl> 0.6768293, 0.7567261, 0.6609756, 0.6773345, 0.86…
$ subject               <chr> "FrScA", "OcnA", "FrScA", "OcnA", "PhysA", "FrSc…
$ semester              <chr> "S216", "S116", "S216", "S216", "S116", "S216", …
$ section               <chr> "02", "01", "01", "01", "01", "03", "01", "01", …
$ Gradebook_Item        <chr> "POINTS EARNED & TOTAL COURSE POINTS", "ATTEMPTE…
$ Grade_Category        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ FinalGradeCEMS        <dbl> 93.45372, 81.70184, 88.48758, 81.85260, 84.00000…
$ Points_Possible       <dbl> 5, 10, 10, 5, 438, 5, 10, 10, 443, 5, 12, 10, 5,…
$ Points_Earned         <dbl> NA, 10.00, NA, 4.00, 399.00, NA, NA, 10.00, 425.…
$ Gender                <chr> "M", "F", "M", "M", "F", "F", "M", "F", "F", "M"…
$ q1                    <dbl> 5, 4, 5, 5, 4, NA, 5, 3, 4, NA, NA, 4, 3, 5, NA,…
$ q2                    <dbl> 4, 4, 4, 5, 3, NA, 5, 3, 3, NA, NA, 5, 3, 3, NA,…
$ q3                    <dbl> 4, 3, 4, 3, 3, NA, 3, 3, 3, NA, NA, 3, 3, 5, NA,…
$ q4                    <dbl> 5, 4, 5, 5, 4, NA, 5, 3, 4, NA, NA, 5, 3, 5, NA,…
$ q5                    <dbl> 5, 4, 5, 5, 4, NA, 5, 3, 4, NA, NA, 5, 4, 5, NA,…
$ q6                    <dbl> 5, 4, 4, 5, 4, NA, 5, 4, 3, NA, NA, 5, 3, 5, NA,…
$ q7                    <dbl> 5, 4, 4, 4, 4, NA, 4, 3, 3, NA, NA, 5, 3, 5, NA,…
$ q8                    <dbl> 5, 5, 5, 5, 4, NA, 5, 3, 4, NA, NA, 4, 3, 5, NA,…
$ q9                    <dbl> 4, 4, 3, 5, NA, NA, 5, 3, 2, NA, NA, 5, 2, 2, NA…
$ q10                   <dbl> 5, 4, 5, 5, 3, NA, 5, 3, 5, NA, NA, 4, 4, 5, NA,…
$ TimeSpent             <dbl> 1555.1667, 1382.7001, 860.4335, 1598.6166, 1481.…
$ TimeSpent_hours       <dbl> 25.91944500, 23.04500167, 14.34055833, 26.643610…
$ TimeSpent_std         <dbl> -0.18051496, -0.30780313, -0.69325954, -0.148446…
$ int                   <dbl> 5.0, 4.2, 5.0, 5.0, 3.8, 4.6, 5.0, 3.0, 4.2, NA,…
$ pc                    <dbl> 4.50, 3.50, 4.00, 3.50, 3.50, 4.00, 3.50, 3.00, …
$ uv                    <dbl> 4.333333, 4.000000, 3.666667, 5.000000, 3.500000…
# Check the data frame using head()
head(sci_classes)
# A tibble: 6 × 30
  student_id course_id     total_points_possible total_points_earned
       <dbl> <chr>                         <dbl>               <dbl>
1      43146 FrScA-S216-02                  3280                2220
2      44638 OcnA-S116-01                   3531                2672
3      47448 FrScA-S216-01                  2870                1897
4      47979 OcnA-S216-01                   4562                3090
5      48797 PhysA-S116-01                  2207                1910
6      51943 FrScA-S216-03                  4208                3596
# ℹ 26 more variables: percentage_earned <dbl>, subject <chr>, semester <chr>,
#   section <chr>, Gradebook_Item <chr>, Grade_Category <lgl>,
#   FinalGradeCEMS <dbl>, Points_Possible <dbl>, Points_Earned <dbl>,
#   Gender <chr>, q1 <dbl>, q2 <dbl>, q3 <dbl>, q4 <dbl>, q5 <dbl>, q6 <dbl>,
#   q7 <dbl>, q8 <dbl>, q9 <dbl>, q10 <dbl>, TimeSpent <dbl>,
#   TimeSpent_hours <dbl>, TimeSpent_std <dbl>, int <dbl>, pc <dbl>, uv <dbl>
#import


#inspect your data
  1. In the select-1 code chunk: Use the ‘select’ function to select student_id, subject, semester, FinalGradeCEMS. Assign to a new object with a different name (you choose the name).
# Type your code here
select_1<-sci_classes %>% 
  select(c(student_id,subject,semester, FinalGradeCEMS))



#inspect your data
select_1
# A tibble: 603 × 4
   student_id subject semester FinalGradeCEMS
        <dbl> <chr>   <chr>             <dbl>
 1      43146 FrScA   S216               93.5
 2      44638 OcnA    S116               81.7
 3      47448 FrScA   S216               88.5
 4      47979 OcnA    S216               81.9
 5      48797 PhysA   S116               84  
 6      51943 FrScA   S216               NA  
 7      52326 AnPhA   S216               83.6
 8      52446 PhysA   S116               97.8
 9      53447 FrScA   S116               96.1
10      53475 FrScA   S116               NA  
# ℹ 593 more rows

What do you notice about FinalGradeCEMS? (*Hint: NAs?)

  • Answer here {possible answer: I notice NA values indicating missing data. This requires handling either by imputation or removal depending on the analysis requirements.}
  1. In code chunk named select-2 select all columns except subject and section. Assign to a new object with a different name. Inspect your data frame with a different function.
# Type your code here
select_2<-sci_classes %>% 
  select(c(-subject,-section))


#inspect data
select_2
# A tibble: 603 × 28
   student_id course_id     total_points_possible total_points_earned
        <dbl> <chr>                         <dbl>               <dbl>
 1      43146 FrScA-S216-02                  3280                2220
 2      44638 OcnA-S116-01                   3531                2672
 3      47448 FrScA-S216-01                  2870                1897
 4      47979 OcnA-S216-01                   4562                3090
 5      48797 PhysA-S116-01                  2207                1910
 6      51943 FrScA-S216-03                  4208                3596
 7      52326 AnPhA-S216-01                  4325                2255
 8      52446 PhysA-S116-01                  2086                1719
 9      53447 FrScA-S116-01                  4655                3149
10      53475 FrScA-S116-02                  1710                1402
# ℹ 593 more rows
# ℹ 24 more variables: percentage_earned <dbl>, semester <chr>,
#   Gradebook_Item <chr>, Grade_Category <lgl>, FinalGradeCEMS <dbl>,
#   Points_Possible <dbl>, Points_Earned <dbl>, Gender <chr>, q1 <dbl>,
#   q2 <dbl>, q3 <dbl>, q4 <dbl>, q5 <dbl>, q6 <dbl>, q7 <dbl>, q8 <dbl>,
#   q9 <dbl>, q10 <dbl>, TimeSpent <dbl>, TimeSpent_hours <dbl>,
#   TimeSpent_std <dbl>, int <dbl>, pc <dbl>, uv <dbl>
  1. In the code chunk named filter-1, Filter the sci_classes data frame for students in OcnA courses. Assign to a new object with a different name. Use the head() function to examine your data frame.
#Type your code here

filter_1<-sci_classes %>% 
  filter(subject=="OcnA")

#inspect your data
head(filter_1)
# A tibble: 6 × 30
  student_id course_id    total_points_possible total_points_earned
       <dbl> <chr>                        <dbl>               <dbl>
1      44638 OcnA-S116-01                  3531                2672
2      47979 OcnA-S216-01                  4562                3090
3      54066 OcnA-S116-01                  4641                3429
4      54282 OcnA-S116-02                  3581                2777
5      54342 OcnA-S116-02                  3256                2876
6      54346 OcnA-S116-01                  4471                3773
# ℹ 26 more variables: percentage_earned <dbl>, subject <chr>, semester <chr>,
#   section <chr>, Gradebook_Item <chr>, Grade_Category <lgl>,
#   FinalGradeCEMS <dbl>, Points_Possible <dbl>, Points_Earned <dbl>,
#   Gender <chr>, q1 <dbl>, q2 <dbl>, q3 <dbl>, q4 <dbl>, q5 <dbl>, q6 <dbl>,
#   q7 <dbl>, q8 <dbl>, q9 <dbl>, q10 <dbl>, TimeSpent <dbl>,
#   TimeSpent_hours <dbl>, TimeSpent_std <dbl>, int <dbl>, pc <dbl>, uv <dbl>

Q: How many rows does the head() function display? Hint: Check the dimensions of your tibble in the console.

  • Answer here ( 6 rows of data)

{Possible answer: The head function displays 5 rows of data}

  1. In code chunk named filter-2, filter the sci_classes data frame so rows with NA for points earned are removed. Assign to a new object with a different name. Use glimpse() to examine all columns of your data frame.
# Type your code here
filter_2 <- sci_classes %>% 
  drop_na(Points_Earned)
  
  



#inspect data 
glimpse(filter_2)
Rows: 511
Columns: 30
$ student_id            <dbl> 44638, 47979, 48797, 52446, 53447, 53475, 53475,…
$ course_id             <chr> "OcnA-S116-01", "OcnA-S216-01", "PhysA-S116-01",…
$ total_points_possible <dbl> 3531, 4562, 2207, 2086, 4655, 1710, 1209, 4641, …
$ total_points_earned   <dbl> 2672, 3090, 1910, 1719, 3149, 1402, 977, 3429, 2…
$ percentage_earned     <dbl> 0.7567261, 0.6773345, 0.8654282, 0.8240652, 0.67…
$ subject               <chr> "OcnA", "OcnA", "PhysA", "PhysA", "FrScA", "FrSc…
$ semester              <chr> "S116", "S216", "S116", "S116", "S116", "S116", …
$ section               <chr> "01", "01", "01", "01", "01", "02", "01", "01", …
$ Gradebook_Item        <chr> "ATTEMPTED", "POINTS EARNED & TOTAL COURSE POINT…
$ Grade_Category        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ FinalGradeCEMS        <dbl> 81.70184, 81.85260, 84.00000, 97.77778, 96.11872…
$ Points_Possible       <dbl> 10, 5, 438, 10, 443, 5, 12, 10, 5, 10, 220, 30, …
$ Points_Earned         <dbl> 10.00, 4.00, 399.00, 10.00, 425.00, 2.50, 12.00,…
$ Gender                <chr> "F", "M", "F", "F", "F", "M", "M", "M", "F", "F"…
$ q1                    <dbl> 4, 5, 4, 3, 4, NA, NA, 4, 3, 5, NA, 4, 4, NA, 4,…
$ q2                    <dbl> 4, 5, 3, 3, 3, NA, NA, 5, 3, 3, NA, 2, 4, NA, 3,…
$ q3                    <dbl> 3, 3, 3, 3, 3, NA, NA, 3, 3, 5, NA, 2, 3, NA, 3,…
$ q4                    <dbl> 4, 5, 4, 3, 4, NA, NA, 5, 3, 5, NA, 4, 5, NA, 4,…
$ q5                    <dbl> 4, 5, 4, 3, 4, NA, NA, 5, 4, 5, NA, 4, 4, NA, 4,…
$ q6                    <dbl> 4, 5, 4, 4, 3, NA, NA, 5, 3, 5, NA, 4, 4, NA, 3,…
$ q7                    <dbl> 4, 4, 4, 3, 3, NA, NA, 5, 3, 5, NA, 4, 5, NA, 3,…
$ q8                    <dbl> 5, 5, 4, 3, 4, NA, NA, 4, 3, 5, NA, 4, 4, NA, 4,…
$ q9                    <dbl> 4, 5, NA, 3, 2, NA, NA, 5, 2, 2, NA, 2, 4, NA, 2…
$ q10                   <dbl> 4, 5, 3, 3, 5, NA, NA, 4, 4, 5, NA, 4, 4, NA, 3,…
$ TimeSpent             <dbl> 1382.7001, 1598.6166, 1481.8000, 1390.2167, 1479…
$ TimeSpent_hours       <dbl> 23.04500167, 26.64361000, 24.69666667, 23.170278…
$ TimeSpent_std         <dbl> -0.30780313, -0.14844697, -0.23466291, -0.302255…
$ int                   <dbl> 4.2, 5.0, 3.8, 3.0, 4.2, NA, NA, 4.4, 3.4, 4.7, …
$ pc                    <dbl> 3.50, 3.50, 3.50, 3.00, 3.00, NA, NA, 4.00, 3.00…
$ uv                    <dbl> 4.000000, 5.000000, 3.500000, 3.333333, 2.666667…
  1. In the code chunk called arrange-1, Arrange sci_classes data by subject then percentage_earned in descending order. Assign to a new object. Use the str() function to examine the data type of each column in your data frame.
# Type your code here
arrange_1<-sci_classes %>% 
  arrange(subject) %>% 
  arrange(desc(percentage_earned))
  


#inpsect data
str(arrange_1)
spc_tbl_ [603 × 30] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
 $ student_id           : num [1:603] 70192 86488 85431 86251 78691 ...
 $ course_id            : chr [1:603] "AnPhA-S116-02" "AnPhA-S116-01" "FrScA-S116-01" "FrScA-S216-01" ...
 $ total_points_possible: num [1:603] 1936 3342 1597 2167 8892 ...
 $ total_points_earned  : num [1:603] 1763 3033 1448 1959 8012 ...
 $ percentage_earned    : num [1:603] 0.911 0.908 0.907 0.904 0.901 ...
 $ subject              : chr [1:603] "AnPhA" "AnPhA" "FrScA" "FrScA" ...
 $ semester             : chr [1:603] "S116" "S116" "S116" "S216" ...
 $ section              : chr [1:603] "02" "01" "01" "01" ...
 $ Gradebook_Item       : chr [1:603] "POINTS EARNED & TOTAL COURSE POINTS" "POINTS EARNED & TOTAL COURSE POINTS" "POINTS EARNED & TOTAL COURSE POINTS" "POINTS EARNED & TOTAL COURSE POINTS" ...
 $ Grade_Category       : logi [1:603] NA NA NA NA NA NA ...
 $ FinalGradeCEMS       : num [1:603] 96 87.4 92.9 72.9 92.9 ...
 $ Points_Possible      : num [1:603] 10 28 10 15 5 457 30 10 10 5 ...
 $ Points_Earned        : num [1:603] 7 26 7 15 5 ...
 $ Gender               : chr [1:603] "F" "M" "F" "F" ...
 $ q1                   : num [1:603] 4 4 5 5 NA 5 NA 4 4 5 ...
 $ q2                   : num [1:603] 3 4 3 5 NA 3 NA 3 3 3 ...
 $ q3                   : num [1:603] 3 2 4 5 NA 4 NA 2 2 3 ...
 $ q4                   : num [1:603] 4 3 4 5 NA 5 NA 4 5 5 ...
 $ q5                   : num [1:603] 4 3 5 5 NA 4 NA 3 4 5 ...
 $ q6                   : num [1:603] 3 3 5 5 NA 4 NA 3 4 4 ...
 $ q7                   : num [1:603] 3 3 4 5 NA 3 4 2 3 3 ...
 $ q8                   : num [1:603] 5 2 5 5 NA 4 NA 4 4 5 ...
 $ q9                   : num [1:603] 2 3 4 5 NA 3 NA 1 3 3 ...
 $ q10                  : num [1:603] 5 3 5 5 NA 5 NA 2 2 5 ...
 $ TimeSpent            : num [1:603] 1537 3600 1449 1375 1560 ...
 $ TimeSpent_hours      : num [1:603] 25.6 60 24.1 22.9 26 ...
 $ TimeSpent_std        : num [1:603] -0.194 1.328 -0.259 -0.314 -0.177 ...
 $ int                  : num [1:603] 4.4 3 4.8 5 NA 4.6 3.6 3.6 3.8 5 ...
 $ pc                   : num [1:603] 3 2.5 4 5 NA ...
 $ uv                   : num [1:603] 2.67 3.33 4 5 NA ...
 - attr(*, "spec")=
  .. cols(
  ..   student_id = col_double(),
  ..   course_id = col_character(),
  ..   total_points_possible = col_double(),
  ..   total_points_earned = col_double(),
  ..   percentage_earned = col_double(),
  ..   subject = col_character(),
  ..   semester = col_character(),
  ..   section = col_character(),
  ..   Gradebook_Item = col_character(),
  ..   Grade_Category = col_logical(),
  ..   FinalGradeCEMS = col_double(),
  ..   Points_Possible = col_double(),
  ..   Points_Earned = col_double(),
  ..   Gender = col_character(),
  ..   q1 = col_double(),
  ..   q2 = col_double(),
  ..   q3 = col_double(),
  ..   q4 = col_double(),
  ..   q5 = col_double(),
  ..   q6 = col_double(),
  ..   q7 = col_double(),
  ..   q8 = col_double(),
  ..   q9 = col_double(),
  ..   q10 = col_double(),
  ..   TimeSpent = col_double(),
  ..   TimeSpent_hours = col_double(),
  ..   TimeSpent_std = col_double(),
  ..   int = col_double(),
  ..   pc = col_double(),
  ..   uv = col_double()
  .. )
 - attr(*, "problems")=<externalptr> 
  1. In the code chunk name final-wrangle, use sci_classes data data and the %>% pipe operator:
  • Select student_id, subject, semester, FinalGradeCEMS.
  • Filter for students in OcnA courses.
  • Arrange grades by section in descending order.
  • Assign to a new object.
  • Examine the contents using a method of your choosing.
#Type your code here
final_wrangle<-sci_classes %>% 
  select(c(student_id,subject,semester,section,FinalGradeCEMS)) %>%
  filter(subject=="OcnA") %>% 
  arrange(section,desc(FinalGradeCEMS))

#inspect
final_wrangle
# A tibble: 111 × 5
   student_id subject semester section FinalGradeCEMS
        <dbl> <chr>   <chr>    <chr>            <dbl>
 1      66740 OcnA    S116     01                99.3
 2      94744 OcnA    S216     01                96.8
 3      91818 OcnA    S116     01                96.5
 4      89114 OcnA    S116     01                95.0
 5      86758 OcnA    S116     01                94.6
 6      79893 OcnA    T116     01                94.5
 7      94323 OcnA    S216     01                94.0
 8      54066 OcnA    S116     01                93.9
 9      89435 OcnA    S116     01                93.8
10      87825 OcnA    S216     01                93.5
# ℹ 101 more rows

Render & Submit

Congratulations, you’ve completed Foundations Learning Badge 1!

To receive your the Foundations Badge, you will need to render this document and publish via a method designated by your instructor such as: Quarto Pub, Posit Cloud, RPubs , GitHub Pages, or other methods. Once you have shared a link to you published document with your instructor and they have reviewed your work, you will be provided a physical or digital version of the badge pictured at the top of this document!

If you have any questions about this badge, or run into any technical issues, don’t hesitate to contact your instructor. Once your instructor has checked your link, you will be provided a physical version of the badge!

Complete the following steps to submit your work for review:

  1. First, change the name of the author: in the YAML header at the very top of this document to your name. The YAML header controls the style and feel for knitted document but doesn’t actually display in the final output.

  2. Next, click the knit button in the toolbar above to “knit” your R Markdown document to a HTML file that will be saved in your R Project folder. You should see a formatted webpage appear in your Viewer tab in the lower right pan or in a new browser window. Let’s us know if you run into any issues with knitting.

  3. Finally, publish.