2012-05-29 2 views
0

벡터, 배열, 목록 및 컬렉션을 사용해 보았습니다. 나중에 데이터에 액세스하려고하면 데이터가 일부 일차원 구조로 변환됩니다. 예를 들어.데이터 구조에 read.table의 출력 저장

이 :

for (i in 1:length(argv)){ 
    temp= read.csv(file=argv[i], header= TRUE) 
    print(temp) 
    input_tables[i]= temp 
    print(input_tables[i]) 

이 나타냅니다 : 나는 R (인터넷 검색 및 도움말 기능의 비트)에 대한 문서를 통해보고하고 난 객체 읽기의 어떤 종류를 결정하지 못할

 V1 V2 V3 V4 
1 1 5 9 13 
2 2 6 10 14 
3 3 7 11 15 
4 4 8 12 16 
[[1]] 
[1] 1 2 3 4 

    V1 V2 V3 V4 
1 2 10 18 26 
2 4 12 20 28 
3 6 14 22 30 
4 8 16 24 32 
[[1]] 
[1] 2 4 6 8 

    V1 V2 V3 V4 
1 4 20 36 52 
2 8 24 40 56 
3 12 28 44 60 
4 16 32 48 64 
[[1]] 
[1] 4 8 12 16 

.table이 반환됩니다. 필자의 이전 경험에서 볼 때 데이터 프레임 또는 매트릭스라고 생각합니다.

어떤 경우에도 이러한 출력을 일부 구조에 저장하고 전송할 수 있습니까? 또는 적어도 데이터를 삭제하지 마십시오. 지금 그대로 있을지도 모릅니다. 시간 내 줘서 고마워. 현재 상황에서 해결 방법이 있지만 쉽게 가능할 것으로 보입니다.

+0

이 예를 사용하여

.list <- lapply(argv, read.csv, header = T) all_data <- do.call(rbind, .list) 

또는 그러나 라인'input_tables는 [내가] <아주 재현되지 않습니다 '. 'argv'는 파일 이름의 벡터입니까? '.list <- lapply (argv, function (.file) {read.csv (.file, header = T)});를 시도하십시오. all_data <- do.call (rbind, .list)' – mnel

답변

5

read.csv가 반환하는 data.frame (value에서, ?read.csv에 명시된 바와 같이)

여러 파일을 결합하는 두 가지 방법은, ARGV를 가정하는 것은 파일 이름의 벡터와 입력이 같은 수있을 것이라는 점을 이며, 열의 순서 temp`은`리스트에`data.frame``temp` 배치 - plyr

library(plyr) 
all_data <- ldply(argv, read.csv, header = T) 
+0

고맙습니다. 나는 몇 번 언급 한 lapply를 보았고, 그것이 어떻게 사용되는지 보게되어 기뻤습니다. – order