R'de bir sütunu birden çok sütuna bölme (örneklerle)


R’de bir sütunu birden çok sütuna bölmek için iki yöntemden birini kullanabilirsiniz:

Yöntem 1: str_split_fixed() işlevini kullanın

 library (stringr)

df[c(' col1 ', ' col2 ')] <- str_split_fixed(df$original_column, ' sep ', 2)

Yöntem 2: Ayrı() kullanın

 library (dplyr)
library (tidyr)

df %>% separate(original_column, c(' col1 ', ' col2 '))

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Yöntem 1: str_split_fixed() işlevini kullanın

Aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#view data frame
df

         player points assists
1 John_Wall 22 8
2 Dirk_Nowitzki 29 4
3 Steve_Nash 18 15

‘Player’ sütununu ‘First’ ve ‘Last’ olarak adlandırılan iki yeni sütuna bölmek için stringr paketindeki str_split_fixed() fonksiyonunu kullanabiliriz:

 library (stringr)

#split 'player' column using '_' as the separator
df[c(' First ', ' Last ')] <- str_split_fixed(df$player, ' _ ', 2)

#view updated data frame
df

         player points assists First Last
1 John_Wall 22 8 John Wall
2 Dirk_Nowitzki 29 4 Dirk Nowitzki
3 Steve_Nash 18 15 Steve Nash

Veri çerçevesinin sonuna iki yeni sütunun eklendiğini unutmayın.

İsterseniz sütunları yeniden düzenleyebilir ve orijinal “oyuncu” sütunlarını kaldırabilirsiniz:

 #rearrange columns and leave out original 'player' column
df_final <- df[c('First', 'Last', 'points', 'assists')]

#view updated data frame
df_final

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Yöntem 2: Ayrı() kullanın

Aşağıdaki kod, “oyuncu” sütununu “ilk” ve “son” sütunlara ayırmak için Tidyr paketinin Different() işlevinin nasıl kullanılacağını gösterir:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Different() işlevinin dizeleri alfasayısal olmayan herhangi bir değere göre ayıracağını unutmayın.

Örneğin, ad ve soyadı virgülle ayrılmışsa, Different() işlevi virgülün konumuna göre otomatik olarak bölünür:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John,Wall', 'Dirk,Nowitzki', 'Steve,Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Different() işlevine ilişkin çevrimiçi belgelerin tamamını burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de iki sütun bir sütunda nasıl birleştirilir
R’de bir veri çerçevesi sütuna göre nasıl sıralanır
R’de veri çerçevesine sütunlar nasıl eklenir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir