2012-10-26 2 views
2

나는 R이 상당히 새롭고 다음과 같은 상황에 처해야한다. 배열로 동일한 식별자 ([X])에 속하는 그룹의 모든 문자R : 문자 배열의 배열을 만드는 방법

[1] a b c d e f g 
[2] h i j k 
[3] l m n o 
[4] x y z 

원하는 I :이 같은 내용의 텍스트 파일을 얻었다. 이후 모든 식별자의 모든 문자에 액세스하려면, 나는 2 차원 배열 (배열의 배열)이 필요합니다. 이 내가 뭘하려 :

> bigvector <- vector() 
> bigvector <- append(bigvector, vector()) 
> bigvector[0][0] <- "Test" 
> > bigvector[0][0] 
logical(0) 

그래서 더 "테스트"반환되지 않습니다. 나는 또한 시도했다 :

> tmpvector <- c("A", "B", "C", "D", "E", "F") 
> bigvector <- vector() 
> bigvector <- append(bigvector, tmpvector) 
> bigvector[0][0] 
character(0) 

이것은 쉬운 작업이어야한다. 그러나 나는 그것을 성취하려고 애 쓰고있다.

+0

색인 생성은 1부터 시작하며, 요소 0은 항상 빈 세트가됩니다. – mdsumner

답변

2

나는 당신이 무엇을하고 싶은지, 정말로 array 개체가 필요한지 확실하지 않습니다.

목록을 사용하는 것이 좋습니다. 다음은 귀하의 [x]이 단지 줄 번호라고 가정하는 예입니다.

#read the data using readLines 
tc <- textConnection("[1] a b c d e f g 
[2] h i j k 
[3] l m n o 
[4] x y z") 

dat <- readLines(tc) 

#split at spaces 
dat <- strsplit(dat,split=" ") 

#remove identifier 
rm1 <- function(x) x[-1] 
dat <- sapply(dat,rm1) 

dat 
#[[1]] 
#[1] "a" "b" "c" "d" "e" "f" "g" 
# 
#[[2]] 
#[1] "h" "i" "j" "k" 
# 
#[[3]] 
#[1] "l" "m" "n" "o" 
# 
#[[4]] 
#[1] "x" "y" "z" 

dat[[3]][3] 
#[1] "n" 

편집 : 코멘트에 주어진 데이터의 경우

, 당신은 lapply를 사용해야합니다.

dat <- readLines(file('http://pastebin.com/raw.php?i=tJW8H6K1')) 

#split at spaces 
dat <- strsplit(dat,split=" ") 

#remove identifier 
rm1 <- function(x) x[-1] 
dat <- lapply(dat,rm1) 

#first five characters of the first line 
dat[[1]][1:5] 
#[1] "1" "1" "0" "1" "0" 
+0

안녕하세요 롤랜드, 고마워요. 이것은 몇 줄의 내용으로 잘 작동합니다. 그러나이 코드는 한 줄의 내용을 다룰 때 작동하지 않습니다. – user1192748

+0

"작동하지 않는다"는 것은 정확히 무엇을 의미합니까? – Roland

+0

실제 데이터 세트를이 알고리즘에 적용하면 (합성 데이터가 아닌 경우) 데이터의 전체 구조가 엉망이됩니다. – user1192748

관련 문제