현재 간단한 전류 - 전압 실험 결과를 시각화하기 위해 ggplot2를 사용하려고합니다. 물론 한 세트의 데이터에 대해 좋은 결과를 얻을 수있었습니다.ggplot2의 물리 실험 데이터 정리
그러나, 나는 (최소한의 코드를 참조) 재귀 적으로 다음과 같은 조직을 얻기 위해 R에서 I 입력 전류 - 전압 데이터 세트의 번호를 가지고 :
data.frame(cbind(batch(string list), sample(string list), dataset(data.frame list)))
편집 : 내 데이터는 텍스트 파일 이름에 저장됩니다 batchname_samplenumber.txt (전압 및 전류 열 포함).
require(plyr)
require(ggplot2)
#VARIABLES
regex <- "([[:alnum:]_]+).([[:alpha:]]+)"
regex2 <- "G5_([[:alnum:]]+)_([[:alnum:]]+).([[:alpha:]]+)"
#FUNCTIONS
getJ <- function(list, k) llply(list, function(i) llply(i, function(i, indix) getElement(i,indix), indix = k))
#FILES
files <- list.files("Data/",full.names= T)
#NAMES FOR FILES
paths <- llply(llply(files, basename),function(i) regmatches(i,regexec(regex,i)))
paths2 <- llply(llply(files, basename),function(i) regmatches(i,regexec(regex2,i)))
names <- llply(llply(getJ(paths, 2)),unlist)
batches <- llply(llply(getJ(paths2, 2)),unlist)
samples <- llply(llply(getJ(paths2, 3)),unlist)
#SETS OF DATA, NAMED
sets <- llply(files,function(i) read.table(i,skip = 0, header = F))
names(sets) <- names
for (i in as.list(names)) names(sets[[i]]) <- c("voltage","current")
df<-data.frame(cbind(batches,samples,sets))
그리고 최소한의 데이터를 통해 생성 할 수 있습니다 : 내가 그들을 가져 오는 데 사용하는 코드는
require(plyr)
batch <- list("A","A","B","B")
sample <- list(1,2,1,2)
set <- list(data.frame(voltage = runif(10), current = runif(10)),data.frame(voltage = runif(10), current = runif(10)),data.frame(voltage = runif(10), current = runif(10)),data.frame(voltage = runif(10), current = runif(10)))
df<-data.frame(cbind(batch,sample,set))
내 질문은 : 코드를 사용하여 플롯 그대로 가능한 데이터를 사용하는 것입니다 다음과 유사한 (작동하지 않음)?
ggplot(data, aes(x = dataset$current, y = dataset$voltage, colour = sample)) + facet_wrap(~batch)
더 많은 일반 버전이 될 것이다는 (다이아몬드, 자동차 등) 통계 자료 이산 반대로, 원시 물리적 데이터를 handeling의 ggplot2 수있다?
"반복적으로 R에 데이터를 inputing"귀하의 설명입니다 매우 불분명하다. 또한 "통계 데이터"와 "원시 물리적 데이터"사이의 구분이 무엇인지 분명하지 않습니다. 데이터는 데이터입니다. 제대로 구성하는 것은 당신에게 달려 있습니다. 아마도 여기의 가이드 라인 [here] (http://stackoverflow.com/q/5963269/324364)에 따라 구체적이고 재현 가능한 예제를 제공해야합니다. – joran
목록을 data.frame 형식으로 가져 오려고합니다. data.frame (batch = your.list [1], sample = your.list [2], your.list [3])으로이 작업을 수행 할 수 있습니다. 몇 가지 길 : do (your.list, rbind), reshape, ... –
귀하의 의견을 보내 주셔서 감사합니다, 그것은 단지 내 머리를 녹여 ggplot2 주위에 포장의 문제입니다 확신합니다. 그러나 나는 각 ggplot2 다이아몬드와 자동차 예제를 살펴 보았고 연결 변수를 사용하여 아무 것도 발견하지 못했습니다 (전류 값과 전압 값이 같음). 그러므로 내 질문. 나는 조란의 말에 더 많은 것을 추가했다. 다시 한번 감사드립니다. –