我试图使用该structure()函数在R中创建一个数据框.我看到这样的东西
structure(mydataframe, class="data.frame")
Run Code Online (Sandbox Code Playgroud)
班级来自哪里?我看到有人使用它,但它没有在R文档中列出.
这是程序员用另一种语言学习并将其结束的东西吗?它有效.我很迷茫.
编辑:我实现了dput(),实际创建了一个看起来像这样的数据框.我弄明白了,欢呼!
你可能看到有人在用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输出时,数字通常会舍入到某个小数点.