'table'에 해당되는 글 4건

  1. 2015.09.07 R 데이터셋의 일부 데이터 가져오기
  2. 2012.08.20 CSS 호환성을 위하여 MS의 인터넷익스플로러 브라우저 구분하는 방법
  3. 2012.06.11 [웹표준 #4]테이블 태그의 활용법
  4. 2011.10.26 MySQL 테이블을 모두 삭제하는 PHP 소스~

R 데이터셋의 일부 데이터 가져오기

|



먼저 지난번에 설명한 R 데이터셋 처리 함수들의 일부를 살펴보자. 

table()로 일부 데이터 가져오기 

mtcars 데이터셋의 실린더 수를 가지고 str(), summary(), stem()을 적용하면 다음과 같다. 


str()을 사용하면 R 객체의 구조를 확인할 수 있고, 

summary()는 데이터에 대한 요약 정보를 보여준다고 했다. 

그리고 stem()은 줄기와 잎 형태로 데이터를 재구성해서 출력한다. 


하지만 자동차의 실린더 수에 따라 일반적으로 4기통, 6기통, 8기통으로 나눠지기 때문에

이런 이산적인 데이터에 대해서는 위와 같은 형태의 출력보다는 테이블 구조가 더 적합하다.

그래서 table()을 한번 적용해 보면 다음과 같이 출력된다. 


전체 자동차에 대해 좀더 확실하게 4, 6, 8기통으로 분류해서 확인해 볼 수 있다. 

만약 이 중에서 4기통과 6기통의 자동차에 대한 정보만 보고 싶으면 어떻게 할까? 

mtcars의 다음과 같이 조건을 주고 4, 6기통 자동차의 정보만 별도로 저장하면 된다. 

다른 정보도 잘 저장되어 있는지 확인하기 위해 str()메소드를 적용해 봤다. 


다음과 같이 조건을 테스트해보면 실린더 수가 4, 6인 것은 TRUE로 나오고 8인 것은 FALSE로 나오는 것을 알 수 있다. 

그러므로 mtcars에 해당 조건을 부여하면 TRUE인 값만 별도로 추출하게 된다. 


subset()으로 일부 데이터 가져오기

이와 유사하게 subset()을 활용할 수도 있다. 

subset()으로 조건을 지정할 수도 있고, 특정 열만 가져오도록 처리할 수도 있다. 

다음 예제를 살펴보면 쉽게 이애할 수 있을 것이다. 


mtcars1은 subset()에 조건만 부여해서 4, 6기통 자동차 정보를 가져온 것이다. 

mtcars2는 위에서 만들어진 mtcars1에 select를 통해 mpg와 cyl 열만 가져온 것이다. 

마지막으로 mtcars3는 원래 데이터인 mtcars에서 subset 조건과 select 열을 한꺼번에 지정해서 가져온 것이다. 


R 더 알아보기

R 실행을 위한 기본적인 내용들~

R 데이터 구조에 대한 정리

R 데이터셋 처리 함수들에 대한 간단한 정리~

R 데이터셋 정렬하기~


R 예제: 데이터 세트에서 관계 확인하기

R 예제: 연관성 측정

R 예제: 이산적 시계열값 예측하기

R 예제: 1이 연속으로 나오는 부분 찾기





Trackback 0 And Comment 0

CSS 호환성을 위하여 MS의 인터넷익스플로러 브라우저 구분하는 방법

|



웹 표준으로 개발하면서 CSS를 적용하다 보면 항상 IE가 문제가 됩니다. 

구글 크롬, 파이어폭스, 애플 사파리 모두 제대로 보이는데 IE만 이상하게 보이는 경우가 종종 있습니다. 

IE 8 버전 이후로 웹 표준을 많이 따르기 때문에 좋아졌다고는 하지만 아직도 안 맞는 부분들이 있네요. 


IE 브라우저의 CSS 구분

이런 경우, CSS Hack이라고 하는 특정 브라우저만 적용할 수 있는 편법들이 나오기도 하지요. 

이외에도 일반적으로 사용하는 방법이 브라우저를 파악해서 다른 CSS 파일을 링크하도록 구성하는 겁니다. 

다음 소스를 한번 보시죠.. 



이렇게 하면 IE에서는 common_ie.css 파일을 사용하게 되구요. 

다른 브라우저에서는 common.css 파일을 사용하게 됩니다. 


이게 가능한 이유는 IE 브라우저가 8버전을 내 놓으면서 

기존의 IE 7 이하와 호환성을 유지하기 위해 HTML에 <!--[if IE] 라는 구문을 주석 형태로 넣었기 때문입니다. 

다른 브라우저에서는 주석이므로 무시하게 되고, 오직 IE에서만 해당 구문을 읽어서 동작하게 되는 것이죠. 

(정말 편법은 대단합니다. ^^)


단순히 IE만 구분하는 것이 아니라 IE의 버전별로도 구분할 수 있습니다. 



Table width 문제 발생시 처리 

특히 IE의 경우, Table의 width가 제대로 처리되지 않는 문제가 많이 발생했었는데요. 

"IE table width problem"으로 구글 검색 해보면 상당히 많은 글들이 나옵니다. 


저의 경우에도 희한하게 IE에서만 Table 구조가 깨지는 경우가 있어서 다음과 같이 처리해 봤습니다. 


<table style="table-layout:fixed"> ... </table>


table-layout 속성은 CSS2부터 포함된 것인데요. 

fixed 값으로 설정되어 있으면 테이블의 넓이를 각 테이블이나 셀에서 설정한 대로 보여주라는 것입니다. 

그러므로 Table내에 width를 잘 설정했다면 IE가 임의대로 출력함으로써 Table 구조가 깨지는 것을 방지해 주는 것이죠.


CSS에서 IE 7과 IE 8, 9의 호환성 유지하는 방법

인터넷 익스플로러에서도 IE 7버전과 8, 9 버전의 호환성을 유지할 필요가 있습니다. 

특히 좌우 여백을 설정하는 경우에 주로 차이가 발생하는데요. 이런 경우 사용할 수 있는 팁은 다음과 같습니다. 


.pass { width:323px; height:44px; margin-left:56px;}
*:first-child+html .pass {margin-left:28px;}


위와 같이 설정하면, IE 7에서 margin-left:28px 가 적용되고 IE 8이나 9에서는 margin-left:56px가 적용되네요. 

이와 관련한 참고 사이트는 http://www.dynamicsitesolutions.com/css/filters/first-child-plus-html/ 를 보시면 됩니다. 

 




Trackback 0 And Comment 0

[웹표준 #4]테이블 태그의 활용법

|



웹 표준으로 넘어가면서 테이블 태그는 구닥다리이고 더 이상 사용하지 않는 것이 좋다는 이야기를 많이합니다. 

실제로 테이블로 굳이 사용하지 않아도 되는 것까지 테이블 태그를 쓰는 경우가 많았기 때문이라고 생각합니다. 

하지만 테이블 구조를 가지고 있는 경우에는 <div> 태그를 쓰는 것보다 <table> 태그를 그대로 사용하는 것이 훨씬 바람직합니다. 

즉, 달력, 차트, 스케줄, 통계와 같은 형식은 테이블을 쓰는 것이 좋겠지요. 

그러나 테이블 태그를 사용할 때는 좀 더 명확하게 하는 것이 필요합니다. 

오늘은 <table> 태그에 대해서 한번 정리해 보려고 합니다. 


<table> 태그의 올바른 사용

예제로 요즘 한참 인기몰이중인 프로야구의 팀 순위를 가지고 테이블을 만들어 보도록 하죠. 

프로야구 팀 순위

순위 승-패-무 승률
1 SK 27-21-1 0.563
2 LG 26-23-1 0.531
2 넥센 26-23-1 0.531
4 롯데 25-23-2 0.521


소스를 보시죠. (너무 길어지니 4위까지만 표기했습니다. 다른 팀 팬들에게는 지송 ㅠㅠ)

일반적으로 사용하는 형태라고 보시면 됩니다. 

그렇다면 이 소스를 기반으로 웹 표준에 맞추어 변경해 보겠습니다. 


caption 활용

위의 예제에서는 <p> 태그를 통해서 제목을 표기했습니다. 

<table> 태그에는 제목을 표기할 수 있는 <caption> 태그를 사용할 수 있습니다. 

<caption>을 사용하면 대부분의 웹 브라우저는 테이블의 맨 위에 가운데 정렬해서 표시해 줍니다. 

또한, 해당 테이블의 제목으로 사람 뿐만 아니라 시스템도 쉽게 인식할 수 있겠죠. 


caption만 변경했는데 위에서 보여준 것과 조금 더 다르게 보이죠.. 


프로야구 팀 순위
순위 승-패-무 승률
1 SK 27-21-1 0.563
2 LG 26-23-1 0.531
2 넥센 26-23-1 0.531
4 롯데 25-23-2 0.521


테이블 헤더 활용

테이블의 헤더를 표시하기 위해서 위의 예제처럼 <td><b>순위</b></td> 와 같이 사용할 수도 있지만

기본적으로 제공하는 <th> 즉, 테이블 헤더를 사용하는 것이 좋습니다. 

보여주는 방식은 웹 표준에서 계속 설명한 것처럼 css로 변경해 줄 수도 있겠죠. 



프로야구 팀 순위
순위 승-패-무 승률
1 SK 27-21-1 0.563
2 LG 26-23-1 0.531
2 넥센 26-23-1 0.531
4 롯데 25-23-2 0.521


<thead>, <tfoot>, <tbody> 활용

W3C의 HTML 스펙의 이 태그들에 대한 설명을 먼저 보시죠. 

Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.

The table head and table foot should contain information about the table's columns. The table body should contain rows of table data.

When present, each THEAD, TFOOT, and TBODY contains a row group. Each row group must contain at least one row, defined by the TR element.

내용을 간단히 요약하면 <tr>로 감싼 테이블의 각 행들을 thead, tbody, tfoot로 감쌀 수 있다는 것입니다. 

내용이 긴 테이블을 인쇄할 때는 thead와 tfoot는 각 페이지마다 인쇄되도록 할 수 있다는 것이네요. 

또한 tbody가 길 경우, 본문만 스크롤하는 기능을 지원할 수도 있다고 되어 있네요. 

그리고 중요한 사항으로는 반드시 tbody 앞에 thead와 tfoot가 와야 한다는 것입니다. 


위 예제로 한번 적용해 보죠. 


프로야구 팀 순위
순위 승-패-무 승률
2012년 6월 9일 기준
1 SK 27-21-1 0.563
2 LG 26-23-1 0.531
2 넥센 26-23-1 0.531
4 롯데 25-23-2 0.521


CSS 적용

테이블 태그의 기본적으로 보여지는 테두리가 제일 보기 불편합니다. 

해당 부분부터 CSS로 변경해 보도록 하죠. 


아래 가장 왼쪽 그림처럼 간격이 좀 보기 그렇죠..

이런 경우에 collapse 속성을 활용합니다.



이어서 여백을 조금 줘보도록 하죠.. 



마지막으로 <caption>과 <th> 부분에 대한 수정을 조금 해보죠. 



각 단계별로 실제 적용한 화면을 보면 다음과 같습니다. 


 


 






Trackback 0 And Comment 0

MySQL 테이블을 모두 삭제하는 PHP 소스~

|



PHP와 MySQL을 사용하는 웹 호스팅에서 데이터베이스의 모든 테이블을 지우려고 할 경우, Drop Database 문을 활용하지 못하는 경우가 많습니다.

그렇다고 수많은 테이블을 하나씩 지우는 것도 방법이 아닐 듯 하네요..

그래서 다음과 같은 PHP 프로그램을 통해서 처리할 수 있을 것 같습니다.

먼저 "show table"을 사용해서 전체 테이블 정보를 가져오고 이어서 "drop table" 명령으로 하나씩 지우면 되겠죠.

다음 소스를 참고하세요~






Trackback 0 And Comment 0
prev | 1 | next