R & Python 문자열 인덱싱 및 슬라이싱

  R과 Python의 가장 큰 차이가 나는 것이,  문자열 인덱싱과 슬라이싱 일 것이다.  즉, 

인덱싱은  문자에도 각 순번이 있어,  순번대로 가져오는 것이다.   그런데  R 과 파이썬 둘의  차이가 매우 크다,  어떻게 보면, 문자열을 초기에 핸들링 하기에는 Python이 더욱 쉬워 보인다. 


아래의 주어진 문자의 예를 들어 설명해 보자.  

text = "나는 고요한 아침의 나라 대한민국에서 살고 있습니다."


문자열 인덱싱  

#Python 

>>> text [0]

       '나'

>>> text [0] + text[1]

      '나는'

어찌 되었든 Python은 문자열이 서로 더하기가 된다.   정말로 직관적으로 연산 할 수 있어서 매우 좋다.   여기에서 파이썬을 주의해야 할 내용이 있다면, 문자의 인덱스의 숫자가 0으로 시작 되는 것이다. 


# R

> library(stringr)

> substr(text, 1,1)

 '나'

> paste0(substr(text,1), substr(text,2))

'나는'

R에서는 인덱싱이라는 개념이 거의 없다.    초기에 진입 할 때는 어려운 방법에 의해서,  진입 하게 된다. 

R에서 만약에 이렇게 했다가는 이러한 에러가 난다. 

> substr(text,1,1) + substr(text, 2,2)

  Error in substr(text, 1, 1) + substr(text, 2, 2): 이항연산자에 수치가 아닌 인수입니다

  Traceback:

R에서는 문자열을 더할 수 없기 때문이다. 


문자열 슬라이싱 

#  Python 

 >>> text[0:6]

   '나는 교요한'


Python에서는 배열의 범위만 지정하면 간단하게 슬라이싱 된다. 

# R

>substr(text, 1,6)

  '나는 교요한'


R에서도 substr 함수하고 범위만 지정 하면 간단하게 처리 할 수 있다. 


 나는  R을 처음 진입 하였을때,  날짜 처리에 어려움이 있었다.    아래의 날짜를 년월로 집계하여 넣는 것이 였는데,  R에서는 구글링 해서도 못 찾아서, 2021년 01월이면 202101 로 하였어야 했는데,  20211로 하였다. 


지금은 해결 방법을 찾았지만 처음 실무에서 구현 하였을 때는 어려움이 있었다. 

 date = "2011-01-01"

#R

a = substr(date,1,4)

> b  = substr(date, 6,7)

>  paste0(a, b)

'201101'


파이썬은 이것보다는 매우 간단 하다. 

# Python 

>>>  a = date[0:4] 

>>>  b = date[5:7]

>>> a + b

'201101'


하지만 인덱스 범위를 지정 하는 것은 파이썬이 조금 헤깔린다.  


R과 Python 문자열 인덱싱  슬라이싱





댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...