簡體   English   中英

R中二元運算符的非數字參數

[英]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"))

但是,你可能需要做一些閱讀/實驗來理解為什么我做了改變。 例如,在您的代碼中,您提供了示例向量xy ,但隨后從數據框planilha2繪制了列。 你能看出為什么我必須改變plot()函數才能運行你的例子嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM