结构()中的"class"参数是什么?

use*_*210 3 r

我试图使用该structure()函数在R中创建一个数据框.我看到这样的东西

structure(mydataframe, class="data.frame")
Run Code Online (Sandbox Code Playgroud)

班级来自哪里?我看到有人使用它,但它没有在R文档中列出.

这是程序员用另一种语言学习并将其结束的东西吗?它有效.我很迷茫.

编辑:我实现了dput(),实际创建了一个看起来像这样的数据框.我弄明白了,欢呼!

Xu *_*ang 7

你可能看到有人在用dput.dput用于发布(通常是短期)数据.但通常你不会创建这样的数据框.您通常会使用该data.frame函数创建它.见下文

> example_df <- data.frame(x=rnorm(3),y=rnorm(3))
> example_df
           x          y
1  0.2411880  0.6660809
2 -0.5222567 -0.2512656
3  0.3824853 -1.8420050
> dput(example_df)
structure(list(x = c(0.241188014013708, -0.522256746461544, 0.382485333260912
), y = c(0.666080872170054, -0.251265630627216, -1.84200501106852
)), .Names = c("x", "y"), row.names = c(NA, -3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

然后,如果有人想"复制"你的data.frame,他只需要运行以下内容:

> copied_df <- structure(list(x = c(0.241188014013708, -0.522256746461544, 0.382485333260912
+     ), y = c(0.666080872170054, -0.251265630627216, -1.84200501106852
+     )), .Names = c("x", "y"), row.names = c(NA, -3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

我在引号中加上"副本",因为请注意以下内容:

> identical(example_df,copied_df)
[1] FALSE
> all.equal(example_df,copied_df)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

identical产生错误,因为当您发布dput输出时,数字通常会舍入到某个小数点.