如何在 R 中處理錯誤“$ 運算子對原子向量無效”?
發生此錯誤是因為 $ 運算子並非設計用於訪問向量元素。如果我們使用 $ 運算子訪問向量元素,則 R 無法理解它並將其視為無效,因此,我們必須非常小心地使用 $ 運算子的位置。當我們為元素命名並開始認為可以將它們視為資料框列時,就會發生這種情況,這是一種錯誤的方法。要訪問向量元素,應使用單個方括號。
示例
考慮以下向量:
> set.seed(1) > x1<-sample(1:10,20,replace=TRUE) > x1 [1] 9 4 7 1 2 7 2 3 1 5 5 10 6 10 7 9 5 5 9 9 > names(x1)<-LETTERS[1:20] > x1 A B C D E F G H I J K L M N O P Q R S T 9 4 7 1 2 7 2 3 1 5 5 10 6 10 7 9 5 5 9 9 > x1$K Error in x1$K : $ operator is invalid for atomic vectors
這裡,我們得到錯誤“$ 運算子對原子向量無效”。現在,我們應該使用單個方括號訪問向量 x1 的元素,如下所示:
> x1["K"] K 5 > x1["T"] T 9 > x1["A"] A 9 > x1[1] A 9
讓我們再看一個例子:
> x2<-sample(1:100,10)
> x2
[1] 37 34 89 44 79 33 84 35 70 74
> names(x2)<-c("A1","A2","A3","A4","A5","A6","A7","A8","A9","A10")
> x2
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
37 34 89 44 79 33 84 35 70 74
> x2["A10"]
A10
74
> x2["A5"]
A5
79
> x2["A6"]
A6
33
> x2["A1"]
A1
37
> x2["A3"]
A3
89
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP