Како креирати ДатаФраме у Р да бисте чували податке на организован начин

ДатаФрамес су основна структура података у Р-у, нудећи структуру, свестраност и алате неопходне за анализу података и манипулацију. Њихов значај се протеже на различите области, укључујући статистику, науку о подацима и доношење одлука засновано на подацима у различитим индустријама.

ДатаФрамес обезбеђују структуру и организацију потребну за откључавање увида и доношење одлука заснованих на подацима на систематичан и ефикасан начин.

ДатаФрамес у Р је структуриран као табеле, са редовима и колонама. Сваки ред представља посматрање, а свака колона представља променљиву. Ова структура олакшава организовање и рад са подацима. ДатаФрамес може да садржи различите типове података, укључујући бројеве, текст и датуме, што их чини разноврсним.

У овом чланку ћу објаснити важност оквира података и разговарати о њиховом креирању помоћу функције дата.фраме().

Поред тога, истражићемо методе за манипулисање подацима и покрити како да креирате из ЦСВ и Екцел датотека, конвертујете друге структуре података у оквире података и користите библиотеку тиббле.

Ево неколико кључних разлога зашто су ДатаФрамес кључни у Р:

Важност оквира података

  • Складиштење структурираних података: ДатаФрамес пружају структуриран и табеларни начин складиштења података, слично као табела. Овај структурирани формат поједностављује управљање подацима и организацију.
  • Мешовити типови података: оквири података могу да приме различите типове података унутар исте структуре. Можете имати колоне са нумеричким вредностима, низовима знакова, факторима, датумима и још много тога. Ова свестраност је неопходна када радите са подацима из стварног света.
  • Организација података: Свака колона у ДатаФраме-у представља променљиву, док сваки ред представља посматрање или случај. Овај структурирани изглед олакшава разумевање организације података, побољшавајући јасноћу података.
  • Увоз и извоз података: ДатаФрамес подржава једноставан увоз и извоз података из различитих формата датотека као што су ЦСВ, Екцел и базе података. Ова функција поједностављује процес рада са спољним изворима података.
  • Интероперабилност: ДатаФраме су у великој мери подржани од Р пакета и функција, обезбеђујући компатибилност са другим алатима и библиотекама за статистику и анализу података. Ова интероперабилност омогућава беспрекорну интеграцију у Р екосистем.
  • Манипулација подацима: Р нуди богат екосистем пакета, а „дплир“ је изузетан пример. Ови пакети олакшавају филтрирање, трансформацију и сумирање података користећи ДатаФрамес. Ова могућност је кључна за чишћење и припрему података.
  • Статистичка анализа: ДатаФрамес су стандардни формат података за многе статистичке функције и функције анализе података у Р. Можете ефикасно да извршите регресију, тестирање хипотеза и многе друге статистичке анализе користећи ДатаФрамес.
  • Визуелизација: Р-ови пакети за визуелизацију података као што је ггплот2 беспрекорно раде са ДатаФрамес-има. Ово чини једноставним прављење информативних графикона и графикона за истраживање података и комуникацију.
  • Истраживање података: оквири података олакшавају истраживање података кроз збирну статистику, визуелизацију и друге аналитичке методе. Ово помаже аналитичарима и научницима за податке да разумеју карактеристике података и открију обрасце или одступања.

Како креирати ДатаФраме у Р

Постоји неколико начина да креирате ДатаФраме у Р. Ево неких од најчешћих метода:

#1. Коришћење функције дата.фраме().

# Load the necessary library if not already loaded
if (!require("dplyr")) {
  install.packages("dplyr")
  library(dplyr)
}

# install.packages("dplyr")
library(dplyr)

# Set a seed for reproducibility
set.seed(42)

# Create a sample sales DataFrame with real product names
sales_data <- data.frame(
  OrderID = 1001:1010,
  Product = c("Laptop", "Smartphone", "Tablet", "Headphones", "Camera", "TV", "Printer", "Washing Machine", "Refrigerator", "Microwave Oven"),
  Quantity = sample(1:10, 10, replace = TRUE),
  Price = round(runif(10, 100, 2000), 2),
  Discount = round(runif(10, 0, 0.3), 2),
  Date = sample(seq(as.Date('2023-01-01'), as.Date('2023-01-10'), by="days"), 10)
)

# Display the sales DataFrame
print(sales_data)

Хајде да разумемо шта ће наш код:

  • Прво проверава да ли је библиотека „дплир“ доступна у Р окружењу.
  • Ако „дплир“ није доступан, он инсталира и учитава библиотеку.
  • Затим поставља насумично семе за поновљивост.
  • Затим креира узорак продајног ДатаФраме-а са нашим попуњеним подацима.
  • Коначно, приказује продајни ДатаФраме у конзоли за преглед.
  •   Надгледање пропусног опсега мреже је једноставно са ових 6 алата

    Салес_датафраме

    Ово је један од најједноставнијих начина да се креира ДатаФраме у Р. Такође ћемо истражити како да издвојимо, додамо, избришемо и изаберемо одређене колоне или редове, као и како да сумирамо податке.

    Издвој колоне

    Постоје две методе за издвајање потребних колона из нашег оквира података:

    • Да бисте преузели последње три колоне ДатаФраме-а у Р, можете користити индексирање.
    • Можете издвојити колоне из ДатаФраме-а помоћу оператора $ када желите да приступите појединачним колонама по имену.

    Видећемо обоје заједно да бисмо уштедели време:

    # Extract the last three columns (Discount, Price, and Date) from the sales_data DataFrame
    last_three_columns <- sales_data[, c("Discount", "Price", "Date")]
    
    # Display the extracted columns
    print(last_three_columns)
    
    ############################################# OR #########################################################
    
    # Extract the last three columns (Discount, Price, and Date) using the $ operator
    discount_column <- sales_data$Discount
    price_column <- sales_data$Price
    date_column <- sales_data$Date
    
    # Create a new DataFrame with the extracted columns
    last_three_columns <- data.frame(Discount = discount_column, Price = price_column, Date = date_column)
    
    # Display the extracted columns
    print(last_three_columns)
    
    

    Можете издвојити потребне колоне користећи било који од ових кодова.

    Можете издвојити редове из ДатаФраме-а у Р користећи различите методе. Ево једноставног начина да то урадите:

    # Extract specific rows (rows 3, 6, and 9) from the last_three_columns DataFrame
    selected_rows <- last_three_columns[c(3, 6, 9), ]
    
    # Display the selected rows
    print(selected_rows)
    

    Такође можете користити одређене услове:

    # Extract and arrange rows that meet the specified conditions
    selected_rows <- sales_data %>%
      filter(Discount < 0.3, Price > 100, format(Date, "%Y-%m") == "2023-01") %>%
      arrange(OrderID) %>%
      select(Discount, Price, Date)
    
    # Display the selected rows
    print(selected_rows)

    Издвојени редови

    Додај нови ред

    Да бисте додали нови ред у постојећи ДатаФраме у Р, можете користити функцију рбинд():

    # Create a new row as a data frame
    new_row <- data.frame(
      OrderID = 1011,
      Product = "Coffee Maker",
      Quantity = 2,
      Price = 75.99,
      Discount = 0.1,
      Date = as.Date("2023-01-12")
    )
    
    # Use the rbind() function to add the new row to the DataFrame
    sales_data <- rbind(sales_data, new_row)
    
    # Display the updated DataFrame
    print(sales_data)
    

    Додан је нови ред

    Додај нову колону

    Можете додати колоне у свој ДатаФраме једноставним кодом. Овде желим да у своје податке додам колону Начин плаћања.

    # Create a new column "PaymentMethod" with values for each row
    sales_data$PaymentMethod <- c("Credit Card", "PayPal", "Cash", "Credit Card", "Cash", "PayPal", "Cash", "Credit Card", "Credit Card", "Cash", "Credit Card")
    # Display the updated DataFrame
    print(sales_data)
    

    Колона је додата у Датафраме

    Избриши редове

    Ако желите да избришете непотребне редове, овај метод може бити од помоћи:

    # Identify the row to be deleted by its OrderID
    row_to_delete <- sales_data$OrderID == 1010
    
    # Use the identified row to exclude it and create a new DataFrame
    sales_data <- sales_data[!row_to_delete, ]
    
    # Display the updated DataFrame without the deleted row
    print(sales_data)
    

    Избриши колоне

    Можете обрисати колону из ДатаФраме-а у Р помоћу пакета дплир.

    # install.packages("dplyr")
    library(dplyr)
    
    # Remove the "Discount" column using the select() function
    sales_data <- sales_data %>% select(-Discount)
    
    # Display the updated DataFrame without the "Discount" column
    print(sales_data)

    Добијте сажетак

    Да бисте добили резиме својих података у Р, можете користити функцију суммари(). Ова функција пружа брз преглед централних тенденција и дистрибуције нумеричких варијабли у вашим подацима.

    # Obtain a summary of the data
    data_summary <- summary(sales_data)
    
    # Display the summary
    print(data_summary)
    

    Ово је неколико корака које можете да пратите да бисте манипулисали својим подацима у оквиру ДатаФраме-а.

    Пређимо на други метод за креирање ДатаФраме-а.

    #2. Направите Р ДатаФраме из ЦСВ датотеке

    Да бисте креирали Р ДатаФраме из ЦСВ датотеке, можете користити реад.цсв()

    # Read the CSV file into a DataFrame
    df <- read.csv("my_data.csv")
    
    # View the first few rows of the DataFrame
    head(df)

    Ова функција чита податке из ЦСВ датотеке и конвертује их. Затим можете радити са подацима у Р по потреби.

    # Install and load the readr package if not already installed
    if (!requireNamespace("readr", quietly = TRUE)) {
      install.packages("readr")
    }
    library(readr)
    
    # Read the CSV file into a DataFrame
    df <- read_csv("data.csv")
    
    # View the first few rows of the DataFrame
    head(df)
    

    можете користити реадр пакет за читање ЦСВ датотеке у Р. Функција реад_цсв() из реадр пакета се обично користи за ову сврху. То је брже од уобичајене методе.

      6 најбољих алтернатива Аутхи-иној апликацији за десктоп

    #3. Коришћење функције ас.дата.фраме().

    Можете креирати ДатаФраме у Р користећи функцију ас.дата.фраме(). Ова функција вам омогућава да конвертујете друге структуре података, као што су матрице или листе, у ДатаФраме.

    Ево како да га користите:

    # Create a nested list to represent the data
    data_list <- list(
      OrderID = 1001:1011,
      Product = c("Laptop", "Smartphone", "Tablet", "Headphones", "Camera", "TV", "Printer", "Washing Machine", "Refrigerator", "Microwave Oven", "Coffee Maker"),
      Quantity = c(1, 5, 1, 9, 10, 4, 2, 10, 1, 8, 2),
      Price = c(1875.88, 585.31, 978.36, 1886.03, 1958.63, 323.23, 1002.49, 1164.63, 1817.66, 363.55, 75.99),
      Discount = c(0.3, 0.28, 0.02, 0.15, 0.12, 0.27, 0.13, 0.25, 0.22, 0.24, 0.1),
      Date = as.Date(c("2023-01-08", "2023-01-03", "2023-01-02", "2023-01-01", "2023-01-10", "2023-01-09", "2023-01-05", "2023-01-06", "2023-01-04", "2023-01-07", "2023-01-12")),
      PaymentMethod = c("Credit Card", "PayPal", "Cash", "Credit Card", "Cash", "PayPal", "Cash", "Credit Card", "Credit Card", "Cash", "Credit Card")
    )
    
    # Convert the nested list to a DataFrame
    sales_data <- as.data.frame(data_list)
    
    # Display the DataFrame
    print(sales_data)
    

    Салес_дата

    Овај метод вам омогућава да креирате ДатаФраме без навођења сваке колоне једну по једну и посебно је корисна када имате велику количину података.

    #4. Из постојећег оквира података

    Да бисте креирали нови оквир података избором одређених колона или редова из постојећег оквира података у Р, можете користити угласте заграде [] за индексирање. Ево како то функционише:

    # Select rows and columns
    sales_subset <- sales_data[c(1, 3, 4), c("Product", "Quantity")]
    
    # Display the selected subset
    print(sales_subset)
    

    У овом коду креирамо нови оквир података који се зове салес_субсет, који садржи одређене редове (1, 3 и 4) и одређене колоне („Производ“ и „Количина“) из салес_дата.

    Можете да прилагодите индексе и називе редова и колона да бисте изабрали податке који су вам потребни.

    Салес_Субсет

    #5. Фром Вецтор

    Вектор је једнодимензионална структура података у Р која се састоји од елемената истог типа података, укључујући логичке, целобројне, двоструке, карактерне, сложене или необрађене.

    С друге стране, Р ДатаФраме је дводимензионална структура дизајнирана за складиштење података у табеларном формату са редовима и колонама. Постоје различите методе за креирање Р ДатаФраме-а из вектора, а један такав пример је дат у наставку.

    # Create vectors for each column
    OrderID <- 1001:1011
    Product <- c("Laptop", "Smartphone", "Tablet", "Headphones", "Camera", "TV", "Printer", "Washing Machine", "Refrigerator", "Microwave Oven", "Coffee Maker")
    Quantity <- c(1, 5, 1, 9, 10, 4, 2, 10, 1, 8, 2)
    Price <- c(1875.88, 585.31, 978.36, 1886.03, 1958.63, 323.23, 1002.49, 1164.63, 1817.66, 363.55, 75.99)
    Discount <- c(0.3, 0.28, 0.02, 0.15, 0.12, 0.27, 0.13, 0.25, 0.22, 0.24, 0.1)
    Date <- as.Date(c("2023-01-08", "2023-01-03", "2023-01-02", "2023-01-01", "2023-01-10", "2023-01-09", "2023-01-05", "2023-01-06", "2023-01-04", "2023-01-07", "2023-01-12"))
    PaymentMethod <- c("Credit Card", "PayPal", "Cash", "Credit Card", "Cash", "PayPal", "Cash", "Credit Card", "Credit Card", "Cash", "Credit Card")
    
    # Create the DataFrame using data.frame()
    sales_data <- data.frame(
      OrderID = OrderID,
      Product = Product,
      Quantity = Quantity,
      Price = Price,
      Discount = Discount,
      Date = Date,
      PaymentMethod = PaymentMethod
    )
    
    # Display the DataFrame
    print(sales_data)
    

    У овом коду креирамо засебне векторе за сваку колону, а затим користимо функцију дата.фраме() да комбинујемо ове векторе у ДатаФраме под називом салес_дата.

    Ово вам омогућава да креирате структурирани табеларни оквир података од појединачних вектора у Р.

    #6. Из Екцел датотеке

    Да бисте креирали ДатаФраме увозом Екцел датотеке у Р, можете да користите пакете треће стране као што је реадкл пошто основни Р не нуди изворну подршку за читање ЦСВ датотека. Једна таква функција за читање Екцел датотека је реад_екцел().

    # Load the readxl library
    library(readxl)
    
    # Define the file path to the Excel file
    excel_file_path <- "your_file.xlsx"  # Replace with the actual file path
    
    # Read the Excel file and create a DataFrame
    data_frame_from_excel <- read_excel(excel_file_path)
    
    # Display the DataFrame
    print(data_frame_from_excel)
    

    Овај код ће прочитати Екцел датотеку и ускладиштити њене податке у Р ДатаФраме, омогућавајући вам да радите са подацима у вашем Р окружењу.

      10 најбољих вештина потребних да бисте постали етички хакер

    #7. Из текстуалне датотеке

    Можете користити функцију реад.табле() у Р да бисте увезли текстуалну датотеку у ДатаФраме. Ова функција захтева два битна параметра: име датотеке коју желите да прочитате и граничник који одређује како су поља у датотеци раздвојена.

    # Define the file name and delimiter
    file_name <- "your_text_file.txt"  # Replace with the actual file name
    delimiter <- "\t"  # Replace with the actual delimiter (e.g., "\t" for tab-separated, "," for CSV)
    
    # Use the read.table() function to create a DataFrame
    data_frame_from_text <- read.table(file_name, header = TRUE, sep = delimiter)
    
    # Display the DataFrame
    print(data_frame_from_text)
    

    Овај код ће прочитати текстуалну датотеку и креирати је у Р, чинећи је приступачном за анализу података у вашем Р окружењу.

    #8. Коришћење Тиббле-а

    Да бисте га креирали помоћу обезбеђених вектора и користили библиотеку тидиверсе, можете да пратите ове кораке:

    # Load the tidyverse library
    library(tidyverse)
    
    # Create a tibble using the provided vectors
    sales_data <- tibble(
      OrderID = 1001:1011,
      Product = c("Laptop", "Smartphone", "Tablet", "Headphones", "Camera", "TV", "Printer", "Washing Machine", "Refrigerator", "Microwave Oven", "Coffee Maker"),
      Quantity = c(1, 5, 1, 9, 10, 4, 2, 10, 1, 8, 2),
      Price = c(1875.88, 585.31, 978.36, 1886.03, 1958.63, 323.23, 1002.49, 1164.63, 1817.66, 363.55, 75.99),
      Discount = c(0.3, 0.28, 0.02, 0.15, 0.12, 0.27, 0.13, 0.25, 0.22, 0.24, 0.1),
      Date = as.Date(c("2023-01-08", "2023-01-03", "2023-01-02", "2023-01-01", "2023-01-10", "2023-01-09", "2023-01-05", "2023-01-06", "2023-01-04", "2023-01-07", "2023-01-12")),
      PaymentMethod = c("Credit Card", "PayPal", "Cash", "Credit Card", "Cash", "PayPal", "Cash", "Credit Card", "Credit Card", "Cash", "Credit Card")
    )
    
    # Display the created sales tibble
    print(sales_data)
    

    Овај код користи функцију тиббле() из библиотеке тидиверсе да креира тиббле ДатаФраме под називом салес_дата. Тиббле формат пружа информативније штампање у поређењу са подразумеваним Р оквиром података, као што сте споменули.

    Како ефикасно користити оквире података у Р

    Ефикасно коришћење оквира података у Р је од суштинског значаја за манипулацију и анализу података. ДатаФраме су основна структура података у Р и обично се креирају и манипулишу помоћу функције дата.фраме. Ево неколико савета за ефикасан рад:

    • Пре креирања, уверите се да су ваши подаци чисти и добро структурирани. Уклоните све непотребне редове или колоне, рукујте вредностима које недостају и уверите се да су типови података одговарајући.
    • Подесите одговарајуће типове података за своје колоне (нпр. нумерички, карактерни, фактор, датум). Ово може побољшати употребу меморије и брзину рачунања.
    • Користите индексирање и подскуп за рад са мањим деловима података. Подскуп() и [ ] оператори су корисни за ову сврху.
    • Док аттацх() и детацх() могу бити згодни, али такође могу довести до двосмислености и неочекиваног понашања.
    • Р је високо оптимизован за векторизоване операције. Кад год је могуће, користите векторизоване функције уместо петљи за манипулацију подацима.
    • Угнежђене петље могу бити споре у Р. Уместо угнежђених петљи, покушајте да користите векторизоване операције или примените функције као што су лаппли или саппли.
    • Велики оквири података могу заузети много меморије. Размислите о коришћењу пакета дата.табле или дтплир, који су ефикаснији за меморију за веће скупове података.
    • Р има широк спектар пакета за манипулацију подацима. Користите пакете као што су дплир, тидир и дата.табле за ефикасне трансформације података.
    • Смањите употребу глобалних променљивих, посебно када радите са више оквира података. Користите функције и проследите ДатаФрамес као аргументе.
    • Када радите са агрегатним подацима, користите функције гроуп_би() и суммаризе() у дплир-у да бисте ефикасно извршили прорачуне.
    • За велике скупове података, размислите о коришћењу паралелне обраде са пакетима као што су паралелни или фореацх да бисте убрзали операције.
    • Када читате податке у Р, користите функције као што су реадр или дата.табле::фреад уместо основних Р функција као што је реад.цсв за бржи увоз података.
    • За веома велике скупове података, размислите о коришћењу система база података или специјализованих формата за складиштење као што су Феатхер, Арров или Паркет.

    Пратећи ове најбоље праксе, можете ефикасно да радите са ДатаФрамес-има у Р, чинећи своје задатке манипулације подацима и анализе лакшим и бржим.

    Последње мисли

    Креирање оквира података у Р је једноставно, а на располагању су вам различите методе. Нагласио сам важност оквира података и разговарао о њиховом креирању помоћу функције дата.фраме().

    Поред тога, истражили смо методе за манипулисање подацима и покрили како да креирате из ЦСВ и Екцел датотека, конвертујете друге структуре података у оквире података и користите библиотеку тиббле.

    Можда ће вас занимати најбољи ИДЕ за Р програмирање.