0

への呼び出しでこれを達成できるはずだとlines()思いますが、次のものがあります。

data <- read.csv(...)
set1 <- subset(data, level='one')
set2 <- subset(data, level='two')
set3 <- subset(data, level='three')
plot(x=data$year, y=data$output)
lines(x=set1$year, y=set1$output, col='red')
lines(x=set2$year, y=set2$output, col='blue')
lines(x=set3$year, y=set3$output, col='green')

これは本当に 101 アプリケーションのように感じます。特に N 回の呼び出しが発生することを考えると、もっと効率的にしたいと思いplotます。linessubset

4

1 に答える 1

1

あなたはちょうどそのようなループを使うことができます

colors <- c('red', 'blue', 'green')
levels <- c('one', 'two', 'three')

# make sure you made a new plot up to this point and that its limits are set correctly

for (i in 1:length(colors)) {
    d <- subset(data, level=levels[i])
    lines(x=d$year, y=d$output, col=colors[i])
)

これは大きな N にうまくスケーリングされますcolors <- rainbow(N)

ループなしで実行したい場合は、行列の列を相互にプロットするmatplotとを調べることができます。matlinesしかし、このためには、すべてのサブセットが同じ長さでなければなりません。これは、あなたの場合には当てはまらないと思います。

于 2014-11-14T21:33:15.870 に答える