[英]Why do I get address must be a character error when I call this api using R?
[英]Why do I get error when using diff in R on matrix
我使用csv文件讀取數據
d<-read.csv("myfile.csv",header=TRUE)
數據已正確讀取,並具有帶有標題的10列雙精度數據。
我想創建一個對數差異的矩陣(我的話-不確定我在R中實際想要什么)。
logs<-log(d)
這很好,但是
diffs<-diff(logs)
給出此錯誤:
-(length(r)-lag + 1L)<<<我不知道那是什么意思...
編輯1我的數據(很抱歉,必須在這里鍵入它-看不到附加文件的明顯方法)
A,B,C
1.1,2.1,3.1
1.2,2.2,3.2
1.3,2.3,3.3
1.4,2.4,3.4
1.5,2.5,3.5
1.6,2.6,3.6
此處的關鍵(以及您的問題)是,雖然diff
確實(按我的驚訝)在矩陣上自動按列工作,但它不適用於數據幀 ,這是您從read.csv
獲得的,與矩陣。
d <- read.csv(textConnection("
A,B,C
1.1,2.1,3.1
1.2,2.2,3.2
1.3,2.3,3.3
1.4,2.4,3.4
1.5,2.5,3.5
1.6,2.6,3.6"))
(logs <- log(d))
diff(logs)
Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] :
non-numeric argument to binary operator
diff(as.matrix(logs))
我最初的答案是您應該使用
apply(logs,2,diff)
在每列上顯式使用diff
。 但是,從?diff
:
x:包含要求差值的數字矢量或矩陣。 ...如果'x'是矩陣,則對每列分別進行差分運算。
如果要將整件事視為單個連續的(列排序的)向量,也可以執行diff(c(as.matrix(logs)))
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.