A: cara menciutkan teks berdasarkan grup dalam bingkai data
Anda dapat menggunakan metode berikut untuk menciutkan teks menurut grup dalam bingkai data di R:
Metode 1: Kurangi teks berdasarkan grup menggunakan Basis R
aggregate(text_var ~ group_var, data=df, FUN=paste, collapse='')
Metode 2: Kurangi teks berdasarkan grup menggunakan dplyr
library (dplyr)
df %>%
group_by(group_var) %>%
summarize(text=paste(text_var, collapse=''))
Metode 3: Mengurangi teks berdasarkan kelompok menggunakan data.table
library (data.table) dt <- as. data . table (df) dt[, list(text_var=paste(text_var, collapse='')), by=group_var]
Tutorial ini menjelaskan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
position=c('Guard', 'Guard', 'Forward',
'Guard', 'Forward', 'Center'))
#view data frame
df
team position
1A Guard
2 A Guard
3 A Forward
4 B Guard
5B Forward
6B Center
Contoh 1: Mengurangi teks berdasarkan grup menggunakan Basis R
Kode berikut menunjukkan cara mengurangi teks kolom posisi , dikelompokkan berdasarkan kolom tim menggunakan fungsi Aggregate() dari database R:
#collapse position values by team
aggregate(position ~ team, data=df, FUN=paste, collapse='')
team position
1A GuardGuardForward
2 B GuardForwardCenter
Perhatikan bahwa setiap nilai teks di kolom posisi telah diciutkan menjadi satu nilai, dikelompokkan berdasarkan nilai di kolom tim .
Contoh 2: Mengurangi teks berdasarkan grup menggunakan dplyr
Kode berikut menunjukkan cara menciutkan teks di kolom posisi , dikelompokkan berdasarkan kolom tim menggunakan fungsi summarise() dari paket dplyr:
library (dplyr) #collapse position values by team df %>% group_by(group_var) %>% summarize(text=paste(text_var, collapse='')) # A tibble: 2 x 2 team text 1A GuardGuardForward 2 B GuardForwardCenter
Perhatikan bahwa setiap nilai teks di kolom posisi telah diciutkan menjadi satu nilai, dikelompokkan berdasarkan nilai di kolom tim .
Contoh 3: Mengurangi teks berdasarkan kelompok menggunakan data.table
Kode berikut menunjukkan cara menciutkan teks di kolom Posisi , dikelompokkan berdasarkan kolom Tim menggunakan fungsi dalam paket data.table:
library (data.table) #convert data frame to data table dt <- as. data . table (df) #collapse position values by team dt[, list(text_var=paste(text_var, collapse='')), by=group_var] team position 1: A GuardGuardForward 2: B GuardForwardCenter
Setiap nilai teks di kolom posisi telah diciutkan menjadi satu nilai, dikelompokkan berdasarkan nilai di kolom tim .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara memilih kolom yang berisi string tertentu di R
Cara menghapus karakter dari string di R
Cara menemukan lokasi karakter dalam string di R