페이지 만든날 (APR 11, 2003)


AnswerMe : R 에서 Odds ratio나 relative risk를 구하는 package나 function 아는 분 없습니까? 물론 그냥 계산하여도 되지만 그럴 바에는 구테여 R을 쓸 거 없이 엑셀로도 되니까요. package가 있거나 어느 function에서 option으로 있을 것 같은데 잘 안 찾아지네요. 참고로 chisq.test 에서는 option이 없더라고요. 아시는 분 좀 가르쳐 주십시요.......DrPepper

Dear DrPepper

[DrPepper/ljh.py]가 일단 작동하는 코드입니다. 현재는 one-way [ANOVA]만 하고 있습니다. --[yong27/2003-04]-25

[TeX]입니다. 여기 클릭하셔서 링크된 자세한 문헌을 보시면 여러 수식 및 '타우'등을 표현하실 수 있을거에요 건승하시길.. --[indigoH]

논문 인터넷에 받아놨습니다. 다음 링크에서 받으시면 됩니다.


[Grub]를 참고하세요 -- yong27 2006-04-11 21:07:56


코드 좀 보아주십시요. C++ 입니다. 문자열을 str이라는 변수에 넣은 후 문자가 몇개인지 세어 보는 겁니다. .......... DrPepper

   1 #include <iostream>
   2 #include <cstring>
   3 
   4 using namespace std;
   5 
   6 void main()
   7 {
   8         char* str;
   9 
  10         void WordCount(char* x ) ;
  11 
  12         str = "가나다라ab ";
  13 
  14         WordCount(str);
  15 
  16 }
  17 
  18 void WordCount(char* x )
  19 {
  20         int alpha =0;
  21         int space=0;
  22         int han =0;
  23         int WordNumber = 0;
  24         while(*x)
  25         {
  26                 if(isalpha(*x)) alpha += 1;
  27                 else if(isspace(*x)) space += 1;
  28              else han += 1;
  29                 buf++;
  30         }
  31         han = han/2;
  32 
  33         WordNumber = alpha + han;
  34 
  35         cout << "저장된 문자수는 " << WordNumber << "입니다." << endl;
  36 
  37 }
  • 안녕하세요. DrPapper. 코드를 잠깐 봤는데, void WordCount(char* x ) ; 이건 없어져야 할 부분으로 보입니다. 초기화되지 않은 않은 포인터 변수를 넘기시면 비정상적으로 작동합니다. 그리고 프로그램 구조상 절대로 정상적인 문자길이를 알아 낼 수 없습니다. 코드를 보니 ASCII 코드 127 이하면 1글자로 인식하고 그렇지 않으면 한글로 인식해서 한글은 단순히 2바이트 문자라고 생각하고 2로 나누는 구조인데요(han=n/2 부분이 이 역할을 하죠). 한글은 절대로 2바이트가 아닙니다. 뭐.. 복잡한 이야기가 많은데요. 그냥 eucKr 같은 경우에는 2바이트씩 사용하지만, unicode 는 그때 그때 다르기 때문에 이 코드는 절대로 정상적인 결과가 나올 수 없습니다. 한글 빼고 영문만 가지고 길이 계산해서 잘 나오면 잘 되는구나 하시면 될 것 같습니다. 도움이 됬기를 바랍니다. -- neosphere 2006-04-16 01:09:57

코드를 약간 수정했읍니다. isalpha 와 isspace 함수를 썼더니 나오기는 하는데 한글이 하나 모자라고 영문이 하나 많게 나오네요. void WordCount(char* x ) ; 이부분은 str 에 문자열을 입력하면서 이미 초기화 된 것이 아닌가요? 이 함수를 다른 클래스에 끼워서 넣으면 분명히 작동이 됩니다....근데 자꾸 디버그 하라고 나와서 문젠데.......DrPepper


  • 이 코드도 좀 봐 주십시요. 문자열 바꾸는 코드입니다. C++ 입니다.......DrPepper

#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>


void main()
{
        char* buf;

        char* str1;

        char* str2;

        buf = "데이터를 컴퓨터 작업을 통해 분석하기 위해서는 그 목적에 맞는 프로그램을 작성해야 한다. 그러나 매 작업마다 프로그램을 새로이 작성한다는 것은 비능률적인 일이며 또한 프로그램을 짤 수 있는 인력도 제한되어 있으며 어려운 일이 될 것이다. 빈번히 사용되는 통계처리방법은 그 종류가 제한되어 있으며 그 처리 형식이 일정하기 때문에 일반화된 컴퓨터 프로그래밍이 가능하다.  이러한 필요성에 의해 개발된 것이 통계패키지이다. 이것은 각 통계처리에 적합하도록 미리 프로그램들이 작성되어 있으며 여기에 자료를 입력시키고 요구하는 자료처리방법을 명시하는 내용을 입력시키면 통계분석결과가 출력된다. 실제 자료처리에 쓰이는 통계분석과정의 프로그램 작성을 직접하지 않아도 일련의 개발된 패키지에 자료와 요구하는 분석방법에 대한 정보를 입력시켜 그 결과를 쉽게 얻을 수 있고 정확한 해석만 할 수 있으면 된다. ";

      str1 = "프로그램";

      str2 = "program";

        cout << endl;

        cout << buf << endl;

        cout << str1 << endl;

        cout << str2 << endl<< endl ;



        char* ret;

        char* dup;

        int lenbuf, pos1, pos2;

        while(*buf)
        {
                ret = strstr(buf, str1);        //buf에서 str1을 검색한다.
                if(ret == NULL)
                {
                        break ;
                }
                else                            //검색된 str1들을 모두 str2로 바꾸기

                {
                        lenbuf = strlen(buf) ;
                        pos1 = ret - buf ;              //buf에서 str1이 검색된 위치까지 길이 구하기
                        dup = strdup(buf);       //buf를 하나더 복사해 놓는다.

                        strnset(&buf[pos1], 0, lenbuf-pos1);  //buf에서 str1이 검새된 이후부터 끝까지 0으로 채운다.
                        strcat(buf, str2);                    //buf에 str2를 채운다.

                        pos1 = ret - buf + strlen(str1);    //buf에서 str1 이 후의 위치 계산
                        pos2 = ret - buf + strlen(str2);    //buf에서 str2를 추가한 이 후의 위치 계산

                        strcpy(&buf[pos2], &dup[pos1]);     //st2가 추가된 buf에 str1 이 후의 문자열들을 복사
                        free(dup);                          //복사를 위해 할당된 메모리 반납
                }
                cout << buf << endl;
        }

}


CategoryHomepage

DrPepper (last edited 2011-08-03 11:00:50 by localhost)

web biohackers.net