Cum se creează DataFrame în R pentru a păstra datele într-un mod organizat

DataFrames sunt o structură de date de bază în R, oferind structura, versatilitatea și instrumentele necesare pentru analiza și manipularea datelor. Importanța lor se extinde la diferite domenii, inclusiv statistică, știința datelor și luarea deciziilor bazate pe date în industrii.

DataFrames oferă structura și organizarea necesare pentru a debloca informații și pentru a lua decizii bazate pe date într-un mod sistematic și eficient.

DataFrames în R este structurat ca tabele, cu rânduri și coloane. Fiecare rând reprezintă o observație, iar fiecare coloană reprezintă o variabilă. Această structură facilitează organizarea și lucrul cu date. DataFrames poate conține diferite tipuri de date, inclusiv numere, text și date, făcându-le versatile.

În acest articol, voi explica importanța cadrelor de date și voi discuta despre crearea lor folosind funcția data.frame().

În plus, vom explora metode de manipulare a datelor și vom aborda modul de a crea din fișiere CSV și Excel, de a converti alte structuri de date în cadre de date și de a folosi biblioteca tibble.

Iată câteva motive cheie pentru care DataFrames-urile sunt cruciale în R:

Importanța cadrelor de date

  • Stocarea datelor structurate: DataFrames oferă o modalitate structurată și tabelară de stocare a datelor, la fel ca o foaie de calcul. Acest format structurat simplifică gestionarea și organizarea datelor.
  • Tipuri de date mixte: DataFrames poate găzdui diferite tipuri de date în cadrul aceleiași structuri. Puteți avea coloane cu valori numerice, șiruri de caractere, factori, date și multe altele. Această versatilitate este esențială atunci când lucrați cu date din lumea reală.
  • Organizarea datelor: Fiecare coloană dintr-un DataFrame reprezintă o variabilă, în timp ce fiecare rând reprezintă o observație sau un caz. Acest aspect structurat facilitează înțelegerea organizării datelor, îmbunătățind claritatea datelor.
  • Import și export de date: DataFrames acceptă importul și exportul ușor de date din diferite formate de fișiere, cum ar fi CSV, Excel și baze de date. Această caracteristică simplifică procesul de lucru cu surse de date externe.
  • Interoperabilitate: DataFrames-urile sunt acceptate pe scară largă de pachetele și funcțiile R, asigurând compatibilitatea cu alte instrumente și biblioteci statistice și de analiză a datelor. Această interoperabilitate permite integrarea perfectă în ecosistemul R.
  • Manipularea datelor: R oferă un ecosistem bogat de pachete, „dplyr” fiind un exemplu remarcabil. Aceste pachete facilitează filtrarea, transformarea și rezumarea datelor folosind DataFrames. Această capacitate este crucială pentru curățarea și pregătirea datelor.
  • Analiză statistică: DataFrames sunt formatul de date standard pentru multe funcții statistice și de analiză a datelor din R. Puteți efectua regresia, testarea ipotezelor și multe alte analize statistice în mod eficient utilizând DataFrames.
  • Vizualizare: pachetele R de vizualizare a datelor, cum ar fi ggplot2, funcționează perfect cu DataFrames. Acest lucru face simplă crearea de diagrame și grafice informative pentru explorarea și comunicarea datelor.
  • Explorarea datelor: DataFrames facilitează explorarea datelor prin statistici rezumative, vizualizare și alte metode analitice. Acest lucru ajută analiștii și oamenii de știință în date să înțeleagă caracteristicile datelor și să detecteze modele sau valori aberante.

Cum se creează un cadru de date în R

Există mai multe moduri de a crea un DataFrame în R. Iată câteva dintre cele mai comune metode:

#1. Folosind funcția data.frame().

# 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)

Să înțelegem ce va face codul nostru:

  Cum să trimiteți mesaje audio folosind Siri pe iPhone
  • Mai întâi verifică dacă biblioteca „dplyr” este disponibilă în mediul R.
  • Dacă „dplyr” nu este disponibil, instalează și încarcă biblioteca.
  • Apoi, stabilește o sămânță aleatorie pentru reproductibilitate.
  • Apoi, creează un eșantion de DataFrame de vânzări cu datele noastre completate.
  • În cele din urmă, afișează DataFrame de vânzări în consolă pentru vizualizare.
  • Sales_dataframe

    Aceasta este una dintre cele mai simple moduri de a crea un DataFrame în R. Vom explora, de asemenea, cum să extragem, să adăugăm, să ștergem și să selectăm anumite coloane sau rânduri, precum și cum să rezumăm datele.

    Extrageți coloanele

    Există două metode pentru a extrage coloanele necesare din cadrul nostru de date:

    • Pentru a prelua ultimele trei coloane ale unui DataFrame în R, puteți utiliza indexarea.
    • Puteți extrage coloane dintr-un DataFrame folosind operatorul $ când doriți să accesați coloane individuale după nume.

    Le vom vedea pe amândouă împreună pentru a economisi timp:

    # 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)
    
    

    Puteți extrage coloanele necesare folosind oricare dintre aceste coduri.

    Puteți extrage rânduri dintr-un DataFrame în R folosind diferite metode. Iată o modalitate simplă de a face acest lucru:

    # 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)
    

    Puteți folosi și condițiile specificate:

    # 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)

    Rânduri extrase

    Adăugați un rând nou

    Pentru a adăuga un nou rând la un DataFrame existent în R, puteți utiliza funcția rbind():

    # 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)
    

    A fost adăugat un rând nou

    Adăugați o coloană nouă

    Puteți adăuga coloane în DataFrame cu un cod simplu. Aici, vreau să adaug coloana Metodă de plată la datele mele.

    # 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)
    

    Coloană adăugată în Dataframe

    Ștergeți rândurile

    Dacă doriți să ștergeți rândurile inutile, această metodă ar putea fi utilă:

    # 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)
    

    Ștergeți coloanele

    Puteți șterge o coloană dintr-un DataFrame în R folosind pachetul dplyr.

    # 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)

    Obțineți rezumatul

    Pentru a obține un rezumat al datelor dvs. în R, puteți utiliza funcția summary(). Această funcție oferă o imagine de ansamblu rapidă a tendințelor centrale și a distribuției variabilelor numerice din datele dvs.

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

    Aceștia sunt câțiva pași pe care îi puteți urma pentru a vă manipula datele într-un DataFrame.

    Să trecem la a doua metodă de a crea un DataFrame.

    #2. Creați un R DataFrame din fișierul CSV

    Pentru a crea un R DataFrame dintr-un fișier CSV, puteți utiliza read.csv()

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

    Această funcție citește datele dintr-un fișier CSV și le convertește. Apoi puteți lucra cu datele din R după cum este necesar.

    # 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)
    

    puteți folosi pachetul readr pentru a citi un fișier CSV în R. Funcția read_csv() din pachetul readr este folosită în mod obișnuit în acest scop. Este mai rapid decât metoda obișnuită.

      Cum să ștergeți o pagină în Word 2010

    #3. Folosind funcția as.data.frame().

    Puteți crea un DataFrame în R folosind funcția as.data.frame(). Această funcție vă permite să convertiți alte structuri de date, cum ar fi matrice sau liste, într-un DataFrame.

    Iată cum să-l folosești:

    # 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)
    

    Date_vânzări

    Această metodă vă permite să creați un DataFrame fără a specifica fiecare coloană una câte una și este deosebit de utilă atunci când aveți o cantitate mare de date.

    #4. Din cadrul de date existent

    Pentru a crea un nou DataFrame selectând anumite coloane sau rânduri dintr-un DataFrame existent în R, puteți folosi paranteze pătrate [] pentru indexare. Iată cum funcționează:

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

    În acest cod, creăm un nou DataFrame numit sales_subset, care conține anumite rânduri (1, 3 și 4) și anumite coloane („Produs” și „Cantitate”) din sales_data.

    Puteți ajusta indici și numele rândurilor și coloanelor pentru a selecta datele de care aveți nevoie.

    Vânzări_Subset

    #5. Din Vector

    Un vector este o structură de date unidimensională în R care constă din elemente de același tip de date, inclusiv logic, întreg, dublu, caracter, complex sau brut.

    Pe de altă parte, un R DataFrame este o structură bidimensională concepută pentru a stoca date într-un format tabelar cu rânduri și coloane. Există diverse metode de a crea un R DataFrame dintr-un vector și un astfel de exemplu este oferit mai jos.

    # 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)
    

    În acest cod, creăm vectori separați pentru fiecare coloană și apoi folosim funcția data.frame() pentru a combina acești vectori într-un DataFrame numit sales_data.

    Acest lucru vă permite să creați un cadru de date tabelar structurat din vectori individuali în R.

    #6. Din fișierul Excel

    Pentru a crea un DataFrame prin importul unui fișier Excel în R, puteți utiliza pachete terțe precum readxl, deoarece R de bază nu oferă suport nativ pentru citirea fișierelor CSV. O astfel de funcție pentru citirea fișierelor Excel este read_excel().

    # 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)
    

    Acest cod va citi fișierul Excel și va stoca datele acestuia într-un R DataFrame, permițându-vă să lucrați cu datele în mediul dumneavoastră R.

    #7. Din fișierul text

    Puteți folosi funcția read.table() în R pentru a importa un fișier text într-un DataFrame. Această funcție necesită doi parametri esențiali: numele fișierului pe care doriți să-l citiți și delimitatorul care specifică modul în care sunt separate câmpurile din fișier.

    # 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)
    

    Acest cod va citi fișierul text și îl va crea în R, făcându-l accesibil pentru analiza datelor în mediul dumneavoastră R.

      Cum se instalează și se configurează Ansible pe Ubuntu?

    #8. Folosind Tibble

    Pentru a-l crea folosind vectorii furnizați și pentru a utiliza biblioteca tidyverse, puteți urma acești pași:

    # 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)
    

    Acest cod folosește funcția tibble() din biblioteca tidyverse pentru a crea un DataFrame tibble numit sales_data. Formatul tibble oferă o imprimare mai informativă în comparație cu cadrul de date R implicit, așa cum ați menționat.

    Cum să utilizați în mod eficient cadrele de date în R

    Utilizarea eficientă a DataFrames în R este esențială pentru manipularea și analiza datelor. Cadrele de date sunt o structură de date fundamentală în R și sunt de obicei create și manipulate folosind funcția data.frame. Iată câteva sfaturi pentru a lucra eficient:

    • Înainte de a crea, asigurați-vă că datele dvs. sunt curate și bine structurate. Eliminați toate rândurile sau coloanele inutile, gestionați valorile lipsă și asigurați-vă că tipurile de date sunt adecvate.
    • Setați tipurile de date adecvate pentru coloanele dvs. (de exemplu, numerice, caractere, factor, dată). Acest lucru poate îmbunătăți utilizarea memoriei și viteza de calcul.
    • Utilizați indexarea și subsetarea pentru a lucra cu porțiuni mai mici ale datelor dvs. Submulțimea() și [ ] operatorii sunt utili în acest scop.
    • În timp ce attach() și detach() pot fi convenabile, dar pot duce și la ambiguitate și la un comportament neașteptat.
    • R este foarte optimizat pentru operații vectorizate. Ori de câte ori este posibil, utilizați funcții vectorizate în loc de bucle pentru manipularea datelor.
    • Buclele imbricate pot fi lente în R. În loc de bucle imbricate, încercați să utilizați operații vectorizate sau să aplicați funcții precum lapply sau sapply.
    • Cadrele de date mari pot consuma multă memorie. Luați în considerare utilizarea pachetelor data.table sau dtplyr, care sunt mai eficiente din punct de vedere al memoriei pentru seturi de date mai mari.
    • R are o gamă largă de pachete pentru manipularea datelor. Utilizați pachete precum dplyr, tidyr și data.table pentru transformări eficiente de date.
    • Minimizați utilizarea variabilelor globale, în special atunci când lucrați cu mai multe DataFrames. Utilizați funcții și transmiteți DataFrames ca argumente.
    • Când lucrați cu date agregate, utilizați funcțiile group_by() și summarize() din dplyr pentru a efectua calcule eficient.
    • Pentru seturi de date mari, luați în considerare utilizarea procesării paralele cu pachete precum parallel sau foreach pentru a accelera operațiunile.
    • Când citiți date în R, utilizați funcții precum readr sau data.table::fread în loc de funcțiile de bază R precum read.csv pentru un import mai rapid de date.
    • Pentru seturi de date foarte mari, luați în considerare utilizarea sistemelor de baze de date sau a formatelor de stocare specializate precum Feather, Arrow sau Parquet.

    Urmând aceste bune practici, puteți lucra eficient cu DataFrames în R, făcând manipularea datelor și sarcinile de analiză mai ușor de gestionat și mai rapide.

    Gânduri finale

    Crearea cadrelor de date în R este simplă și aveți la dispoziție diferite metode. Am subliniat importanța cadrelor de date și am discutat despre crearea lor folosind funcția data.frame().

    În plus, am explorat metode de manipulare a datelor și am abordat modul de a crea din fișiere CSV și Excel, de a converti alte structuri de date în cadre de date și de a folosi biblioteca tibble.

    S-ar putea să vă intereseze cele mai bune IDE-uri pentru programarea R.