我下面的測試不起作用。任何人都可以提出不同的方法?如何確認兩個R對象具有相同的結構?
===不同的內容,相同的結構,要「真」比較
> x<-c(1,2,3)
> y<-x
> identical(str(x),str(y))
num [1:3] 1 2 3
num [1:3] 1 2 3
[1] TRUE
> y[3]<-999
> identical(str(x),str(y))
num [1:3] 1 2 3
num [1:3] 1 2 999
[1] TRUE
> str(x)
num [1:3] 1 2 3
> str(y)
num [1:3] 1 2 999
>
,但這種做法是錯誤的,因爲這表示x和z具有相同的結構!
> z<-list("a","b")
> identical(str(x),str(z))
num [1:3] 1 2 3
List of 2
$ : chr "a"
$ : chr "b"
[1] TRUE
我想這是因爲我需要一種方法來確認R對象我構建具有完全相同的類型,什麼是R中包示例提供。
'str'返回'NULL' (你看到的是簡單的打印,沒有返回),所以你總是比較兩個相同的空值。只需使用'identical(x,y)' – Frank
您正在比較str中的對象而不是元素本身... –
問題措辭並不是最清楚的,但我將它看作詢問如何測試兩個對象是否具有即使其內容可能不同,也是一個相當困難的問題。 –