2015-03-11 4 views
5

Я хотел бы сократить значения одного столбца моего data.frame. Сейчас каждое значение состоит из множества букв, таких какR: Как сократить значения фрейма данных до первого символа

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

то, что мне нужно, это только первая буква:

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

Я прочитал другие записи, которые предложили использовать gsub, stri_replace_all_charclass или strsplit , Но я боюсь, что мне нужна помощь в реализации этого.

+1

'зиЬзЬг ("AHG" , 1, 1) ' – Roland

+2

' strtrim (x, width) ' – rmuc8

ответ

6

Вы можете использовать strtrim

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

Я не знал об этой функции. Я использую аналогичную функцию 'str_trim' из' stringr' для удаления пробела. Спасибо, что разделили эту опцию – akrun

+0

Что делать, если нам нужно обрезать назад? –

3

stringr пакет велик:

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" 
+2

Зачем вам нужен пакет здесь? Синтаксис точно такой же, как для базовой функции 'substr'. – Roland

1

Что вам нужно, это функция подстрока:

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

Я согласен с Робин. с использованием функции substr или подстроки будет непосредственно выполнять трюк без установки какого-либо пакета.

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

или ДФ $ col1 < - подстрока (ДФ $ col1,1,1)

использование синтаксиса зиЬзЬг (целевой вектор, начало место, остановка место)

 Смежные вопросы

  • Нет связанных вопросов^_^