2015-03-11 22 views
5

Veritabanımdaki bir sütunun değerlerini kısaltmak isterim. Diğer girdileri okudumR: Veri çerçeve değerlerini ilk karaktere göre kısaltmak

df$col1 
[1] A A O B L Q A V 

gsub, stri_replace_all_charclass veya strsplit kullanmak önerdi: ne gerek sadece ilk harfi böyle

df$col1 
[1] AHG ALK OPH BCZ LKH QRQ AAA VYY 

olarak Şu anda, her değer, birçok harflerden oluşur . Ama korkarım ki bunu uygulamak için yardıma ihtiyacım var.

+1

'substr ("AHG" , 1, 1) ' – Roland

+2

' strtrim (x, genişlik)' – rmuc8

cevap

6

Sen Ne gerek alt dize fonksiyonudur strtrim

df$col1 <- strtrim(df$col1, 1) 
+2

Bu işlevi bilmiyordum. Ben beyaz alanı kaldırmak için 'stringr' den benzer bir işlev' str_trim' kullanın. Bu seçeneği paylaştığınız için teşekkürler. – akrun

+0

Geriye doğru dönmemiz gerekiyorsa? –

3

stringr büyük pakettir: Ben Robin ile anlaşmak

df$col1 <- substr(df$col1, 1, 1) 
+2

Neden burada bir pakete ihtiyacınız var? Sözdizimi, 'substr' temel işleviyle aynıdır. – Roland

1

kullanabilirsiniz. Substr veya substring fonksiyonunu kullanan , herhangi bir paket yüklemeye gerek kalmadan doğrudan hile yapacaktır.

df$col1 <- substr(df$col1, 1, 1) 

veya df $ col1 < - alt dize (df $ col1,1,1)

kullanım sözdizimi substr (hedef vektör, yer başlatmak, durdurmak yer)

1

:

require(stringr) 

df <- data.frame(col1 = c("AHG", "ALK", "OPH", "BCZ", "LKH", "QRQ", "AAA", "VYY")) 

str_sub(df$col1, 1, 1) 

[1] "A" "A" "O" "B" "L" "Q" "A" "V" 
İlgili konular