Я думаю, что я мог бы это навлечь на уме. У меня есть файл, который я хочу использовать, чтобы сделать barplot в R. Файл выглядит следующим образом:Vector from with read.table R
## metadata
# filepath
## filename
# Started on: Tue Jul 30 10:46:57 EDT 2013
#HISTOGRAM java.lang.Integer
READ: 1 2
-1 28 28
0 27 29
Я хочу сделать гистограмму данных у меня есть. Я думал, что это будет выглядеть примерно так:
|
|
# | |
| | |
| | | |
|__|_____|____|___|____
-1(1) -1(2) 0(1) 0(2)
Но у меня проблемы с чтением данных. Это мой код:
# Parse the arguments
args <- commandArgs(trailing=T)
#Chart file
metricsFile <- args[1]
#pdf file path and name that I want to produce
outputFile <- args[2]
# Figure out where the firstLine and the chart are in the file and parse them out
startFinder <- scan(metricsFile, what="character", sep="\n", quiet=TRUE, blank.lines.skip=FALSE)
firstBlankLine=0
#finds empty strings
for (i in 1:length(startFinder))
{
if (startFinder[i] == "") {
if (firstBlankLine==0) {
firstBlankLine=i+1
} else {
secondBlankLine=i+1
break
}
}
}
#I accept some args and I read past some header information
firstLine <- read.table(metricsFile, header=T, nrows=1, sep="\t", skip=firstBlankLine)
#prints "firstLine: -1" "firstLine: 28" "firstLine: 28"
secondLine <- read.table(metricsFile, header=T, nrows=1, sep="\t", skip=secondBlankLine)
#prints "secondLine: -1" "secondLine: 27" "secondLine: 29"
# Then plot as a PDF
pdf(outputFile)
#I am just inputing firstLine here because I was trying to see how it works
#I get the error:'height' must be a vector or a matrix
barplot(firstLine,
main=paste("Read",(i-1)," Distribution ",
xlab="Counts",
ylab="F/R Orientation")
dev.off()
Как я заметил в моем коде я получаю ошибку, что «высота» должен быть вектор или матрица. Я не знаю R достаточно хорошо, чтобы знать, как читать его как вектор, а не как я сейчас это делаю. Я также не уверен, может быть, проблема в том, что я использую barplot. Может быть, лучше использовать только «сюжет»? Возможно, я неправильно использую read.table?
Вы можете сделать свой пример [воспроизводимым] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). В противном случае отладка будет невозможна. Включите точный входной файл или его часть, а также все дополнительные переменные, которые вы используете ... вы также можете включить 'dput (firstLine)', что очень поможет. – Justin