1. ホーム
  2. r

[解決済み] R using diff: 二項演算子への非数値引数エラー

2022-02-13 10:26:34

質問

以下のコマンドで、数値の入ったCSVファイルを解析します。

tt <- read.table("test2.csv",sep=";",stringsAsFactors=FALSE)

そして、うまくいくのです。印刷する tt[1,] はきれいなベクトルを生成し sd(tt[1,]) が賢明です。

しかし

diff(tt[1,])

コマンドラインはエラーを返します。

Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] :
    non-numeric argument to binary operator error

なぜでしょう?何か思い当たることはありますか?

解決方法は?

あなたの tt[1,] は、その

class(tt[1,])
# [1] "data.frame"

ですから、もしあなたが as.numeric であれば、問題ないでしょう。 これを試してみてください。

diff(as.numeric(tt[1,]))


ここで、検査できる例を挙げます。

tt <- data.frame(x = 1, y = 2)
is.vector(tt[1,])
# [1] FALSE
class(tt[1,])
# [1] "data.frame"
diff(tt[1,])
# Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : 
#   non-numeric argument to binary operator
as.numeric(tt[1,])
# [1] 1 2
diff(as.numeric(tt[1,]))
# [1] 1