data.frames的相等性,其中一列是列表
下面是一个示例,用于生成一个data.frames的相等性,其中一列是列表,r,dataframe,R,Dataframe,下面是一个示例,用于生成一个data.frame,其中包含一个列表列: df1 <- data.frame(x=1:3) df1$y <- list(1:2,1:3,1:4) 两者都返回 x y 1 1 1, 2 2 2 1, 2, 3 3 3 1, 2, 3, 4 我的问题:我可以检查df1和df2是否“相同”,如果是,如何检查 我尝试了all.equal(df1,df2),它给出了(很抱歉在德国安装上工作) 以及all(df1==df2
data.frame
,其中包含一个列表列:
df1 <- data.frame(x=1:3)
df1$y <- list(1:2,1:3,1:4)
两者都返回
x y
1 1 1, 2
2 2 1, 2, 3
3 3 1, 2, 3, 4
我的问题:我可以检查df1
和df2
是否“相同”,如果是,如何检查
我尝试了all.equal(df1,df2)
,它给出了(很抱歉在德国安装上工作)
以及all(df1==df2)
,返回
Error in FUN(left, right) : comparison of these types is not implemented
它们不相同,这就是
idential()
正在检查的,它们有不同的类
str(df1)
'data.frame': 3 obs. of 2 variables:
$ x: int 1 2 3
$ y:List of 3
..$ : int 1 2
..$ : int 1 2 3
..$ : int 1 2 3 4
str(df2)
'data.frame': 3 obs. of 2 variables:
$ x: int 1 2 3
$ y:List of 3
..$ : int 1 2
..$ : int 1 2 3
..$ : int 1 2 3 4
..- attr(*, "class")= chr "AsIs"
与此类似:
> a <- 1:3
> b <- 1:3
> class(b) <- "aaa"
> a
[1] 1 2 3
> b
[1] 1 2 3
attr(,"class")
[1] "aaa"
> identical(a,b)
[1] FALSE
> a==b
[1] TRUE TRUE TRUE
>a b类(b)a
[1] 1 2 3
>b
[1] 1 2 3
属性(,“类”)
[1] “aaa”
>相同(a,b)
[1] 假的
>a==b
[1] 千真万确
所有.equal(df1,df2,check.attributes=FALSE)怎么样?是的,非常感谢!你能告诉我为什么这是离题的吗?我承认不理解“具体原因”。
Error in FUN(left, right) : comparison of these types is not implemented
str(df1)
'data.frame': 3 obs. of 2 variables:
$ x: int 1 2 3
$ y:List of 3
..$ : int 1 2
..$ : int 1 2 3
..$ : int 1 2 3 4
str(df2)
'data.frame': 3 obs. of 2 variables:
$ x: int 1 2 3
$ y:List of 3
..$ : int 1 2
..$ : int 1 2 3
..$ : int 1 2 3 4
..- attr(*, "class")= chr "AsIs"
> a <- 1:3
> b <- 1:3
> class(b) <- "aaa"
> a
[1] 1 2 3
> b
[1] 1 2 3
attr(,"class")
[1] "aaa"
> identical(a,b)
[1] FALSE
> a==b
[1] TRUE TRUE TRUE