[英]Non-numeric argument to binary operator, CSV
我曾經見過其他人已經為此苦苦掙扎,但是我沒有設法用這些帖子解決我的問題。 我收到錯誤“二進制運算符的非數字參數”。 以下可重現的示例有效:
x=rnorm(1000)+sin(c(1:1000)/100)#random data+ sinus superimposed
par(mfrow=c(2,2))
plot(x)# plot random data
plot(filter(x,rep(1/100,100)))
plot(x-filter(x,rep(1/100,100)))
# variances of variable, long term variability and short term variability
var(x)
var(filter(x, rep(1/100,100)),na.rm=T)
var(x-filter(x, rep(1/100,100)),na.rm=T)
但是,我當然想使用自己的數據集,它是一個csv,這是發生錯誤的時間。 它必須與數據格式有關,因為當我將隨機數據導出到csv時:
x=rnorm(1000)+sin(c(1:1000)/100)#random data+ sinus superimposed
write.csv(x,"dat.csv")
然后嘗試讀取dat.csv
y <- read.csv("dat.csv", header=TRUE, stringsAsFactors=FALSE)
par(mfrow=c(2,2))
plot(y)
plot(filter(y,rep(1/100,100)))
plot(y-filter(y,rep(1/100,100)))
[...]我得到了錯誤
Error in x - filter(x, rep(1/100, 100)) :
non-numeric argument to binary operator
Calls: plot
In addition: Warning message:
In plot(x - filter(x, rep(1/100, 100))) :
Incompatible methods ("Ops.data.frame", "Ops.ts") for "-"
Execution halted
為什么值不是數字? 我不明白 謝謝你的幫助!
我對帖子進行了一些重寫,因此x
變量未用於輸入和輸出。 read.csv()
值現在為y
。 注意它是一個data.frame
,而x
是一個普通的numeric
矢量 。
要使第二組圖的行為類似於第一組圖,請從y
提取第一個向量(以下稱為y1
),然后將該向量傳遞給dplyr函數。
y <- read.csv("dat.csv", header=TRUE, stringsAsFactors=FALSE)
y1 <- y$x # Extract the first column
par(mfrow=c(2,2))
plot(y1)
plot(filter(y1,rep(1/100,100)))
plot(y1-filter(y1,rep(1/100,100)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.