我下面的测试不起作用。任何人都可以提出不同的方法?如何确认两个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中的对象而不是元素本身... –
问题措辞并不是最清楚的,但我将它看作询问如何测试两个对象是否具有即使其内容可能不同,也是一个相当困难的问题。 –