[英]Non-numeric argument to binary operator in R
我試圖在圖表中,在x和y行中繪制一些數字。 問題是我將數字格式化為3M為3.000.000,10k為10.000,然后我試圖使用axis
函數將這些數字放在圖中,問題是我收到的消息“非 -二元運算符的數字參數“
x<-c(10000,20000,50000,200000) y<-c(24679826,99532203,623224134,1422415645) x1<-paste(format(round(x / 1e3, 1), trim = TRUE), "K") y1<-c(paste(format(round(y / 1e6, 1), trim = TRUE), "M")) options(scipen=999) plot(planilha2$N,planilha2$Iteracoes_Insercao,type="b", xlab="Tamanho dos Vetores", ylab="Numero de iterações", xaxt="n",yaxt="n",pch=16,col="red",lwd=2.2, main="Inserção iterativo (Vetores gerados aleatoriamente)", cex.main=1) axis(1, (paste(format(round(x1 / 1e3, 1), trim = TRUE), "K"))) axis(2,paste(round(y / 1e6, 1), trim = TRUE), "M")
這里要解決幾件事:
首先,您收到的錯誤告訴您:您正在將一些需要數值的函數應用於非數字值。 在這種情況下,它是: x1/ 1e3
。 x1在字符向量之前設置了幾行。 它是一組字符串,因此您不能將其除以1e3
。 我假設這是一個拼寫錯誤,你的意思是x
而不是x1
。
接下來,您缺少一些axis()
函數的參數。 您需要告訴axis()
指向哪些點來繪制標簽以及要繪制的標簽。 請參閱axis()
函數的文檔。
為了幫助你,我修改了代碼,以便在這里繪制一個圖:
x<-c(10000,20000,50000,200000)
y<-c(24679826,99532203,623224134,1422415645)
options(scipen=999)
plot(x, y,type="b",
xlab="Tamanho dos Vetores",
ylab="Numero de iterações",
xaxt="n",yaxt="n",pch=16,col="red",lwd=2.2,
main="Inserção iterativo (Vetores gerados aleatoriamente)",
cex.main=1)
axis(1, x, labels = paste(format(round(x / 1e3, 1), trim = TRUE), "K"))
axis(2, y, labels = paste(format(round(y / 1e6, 1), trim = TRUE), "M"))
但是,你可能需要做一些閱讀/實驗來理解為什么我做了改變。 例如,在您的代碼中,您提供了示例向量x
和y
,但隨后從數據框planilha2
繪制了列。 你能看出為什么我必須改變plot()
函數才能運行你的例子嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.