我正在尝试使用 structure() 函数在 R 中创建一个数据框。
我看到了这样的事情

structure(mydataframe, class="data.frame")

类从何而来?我看到有人使用它,但它没有列在 R 文档中。

这是程序员在另一种语言中学到的东西并继承了它吗?它有效。我很困扰。

编辑:我意识到 dput(),实际上是创建了一个看起来像这样的数据框。我明白了,干杯!

最佳答案

您可能看到有人使用 dputdput 用于发布(通常很短)数据。但通常您不会创建这样的数据框。您通常会使用 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")

然后,如果有人想“复制”您的 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")

我将“复制”放在引号中,因为请注意以下几点:
> identical(example_df,copied_df)
[1] FALSE
> all.equal(example_df,copied_df)
[1] TRUE
identical 产生错误,因为当您发布 dput 输出时,数字通常会四舍五入到某个小数点。

关于r - 什么是结构()中的 "class"参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8248049/

10-12 22:38