2016-07-04 5 views
0

생물학적 분석에서 우리는 종종 같은 분자에서 측정 값을 복제 한 다음 평균 2 또는 3 복제를 사용하여 용량 반응 곡선을 그립니다. R에 엑셀 파일을 읽어보고 싶습니다. 여기에는 복제본의 열 머리글이 병합되었습니다 (아래 텍스트 예제 및 link to example file). readxl 패키지의 read_excel 함수는 파일을 읽을 수 있지만 헤더 셀을 병합 해제하고 빈 셀을 NA로 바꿉니다.R 열 머리글로 병합 된 셀을 사용하여 Excel 파일을 읽습니다.

 
conc   | Sample1 | Sample2 
------------------------------------------- 
10   | 1.5 | 2.5 | 3 | 4 
------------------------------------------- 
100   | 15 | 25 | 30 | 40 
------------------------------------------- 
1000   | 150 | 250 | 300 | 400 

중 하나가 아래와 같이 헤더를 넘버링/복제 자동으로 R에 병합 된 셀 레이아웃을 보존 또는 대안 열에 읽기의 방법이 있나요?

 
conc   | Sample1.1 | Sample1.2 | Sample2.1 | Sample2.2 
-------------------------------------------------------------- 
10   | 1.5 | 2.5 |  3  |  4 
-------------------------------------------------------------- 
100   | 15  | 25  |  30 |  40 
-------------------------------------------------------------- 
1000   | 150 | 250 |  300 |  400 

감사합니다.

+0

R은 중복 된 열 이름을 허용하지 않습니다. – milan

+0

당신은 당신의 read-in 데이터를 출력 할 수 있습니까? 또한 이름을 사용하여 둘 모두에 액세스 할 수 없으므로 데이터에 중복 된 컬럼 이름이 없습니다. – Psidom

+1

아마도 헤더없이 데이터를 읽고 나중에 추가하는 것이 가장 간단 할 것입니다. 즉, readll, XLConnect, xlsx, openxlsx 등의 Excel 판독기 패키지가 너무 많아서 그 중 하나에이 상황을 처리 할 수있는 매개 변수가있을 것입니다. – alistaire

답변

1

완전한 대답은 아니지만 목록 열이있어 여러 값이 단일 셀에 포함될 수 있습니다. Excel의 "병합 된 열"과 동일한 기능을 수행 할 수 있습니다.

library(data.table) 
new <- data.table("V1" = c(1,2), "V2" = list(c(1,2,5),c(2,3))) 

공지 열 V2는 (각 벡터도 고유의 길이이며, 각자가 필요한만큼 길거나 짧을 수 있음) 목록 내에서 두 벡터를 가지고 : 여기에 그냥 내가 무슨 뜻인지 보여주기 위해 예입니다 .

> new$V2[[1]] 
[1] 1 2 5 

또는 특정 복제 : 지금 당신은 주어진 셀의 모든 값을 호출 할 수 있습니다 내가 스프레드 시트의 모양을 정확히 모르는

> new$V2[[2]][2] 
[1] 3 

등을 현재의 형태에서 점점 에 따라 "목록 열"양식으로 변환하는 것이 어려울 수 있습니다. 바라기를 이것은 당신에게 약간 아이디어를 준다!

관련 문제