2013-11-03 1 views
0

데이터 세트로 변환하려는 요소가 포함 된 문자열 집합이 있습니다. 기본적으로 공백을 제거하고 데이터 열을 남기고 싶습니다. 가장 쉬운 방법, 그리고 아마도 유일한 방법은 외부 파일에 my.data을 쓰고 그 외부 파일을 R로 다시 읽는 것입니다. 새로운 파일을 작성하고 읽는 것을 포함하지 않는보다 효율적인 솔루션이 있습니까? 어떤 제안이있어 주셔서 감사합니다. 나는 왜 당신의 문자열에 read.table을 사용하여 기본 R.에게공백을 제거하여 문자열을 숫자 데이터 세트로 변환합니다.

my.data <- c(' abc  -1.10  1.18  -3.41  1.21 ', 
      ' def  -1.71  0.21  -2.14 1.29  ', 
      ' gg   2.19  2.93  -1.16  3.55 ', 
      ' hvv4  0.00  -0.01   0.04  0.11  ') 

my.data <- data.frame(my.data, stringsAsFactors=FALSE) 

desired.result <- read.table(text = ' 

    parm1 beta SE  lcl ucl 
    abc -1.10 1.18 -3.41 1.21 
    def -1.71 0.21 -2.14 1.29 
    gg 2.19 2.93 -1.16 3.55 
    vv4 0.00 -0.01 -0.04 0.11 

', header = TRUE, stringsAsFactors=FALSE) 

답변

4

를 선호?

out <- read.table(text = my.data, stringsAsFactors=FALSE, 
        header = FALSE, strip.white=TRUE) 
str(out) 
# 'data.frame': 4 obs. of 5 variables: 
# $ V1: chr "abc" "def" "gg" "hvv4" 
# $ V2: num -1.1 -1.71 2.19 0 
# $ V3: num 1.18 0.21 2.93 -0.01 
# $ V4: num -3.41 -2.14 -1.16 0.04 
# $ V5: num 1.21 1.29 3.55 0.11 
1
x=t(unique(unlist(strsplit(x=my.data,split=" ")))[-1]) 
cleaned=matrix(x,5,4) 
t(cleaned) 

     [,1] [,2] [,3] [,4] 
[1,] "abc" "def" "gg" "hvv4" 
[2,] "-1.10" "-1.71" "2.19" "0.00" 
[3,] "1.18" "0.21" "2.93" "-0.01" 
[4,] "-3.41" "-2.14" "-1.16" "0.04" 
[5,] "1.21" "1.29" "3.55" "0.11" 

cleaned 

     [,1] [,2] [,3] [,4] [,5] 
[1,] "abc" "-1.10" "1.18" "-3.41" "1.21" 
[2,] "def" "-1.71" "0.21" "-2.14" "1.29" 
[3,] "gg" "2.19" "2.93" "-1.16" "3.55" 
[4,] "hvv4" "0.00" "-0.01" "0.04" "0.11" 
관련 문제