简体   繁体   English

使用 dput() 的示例

[英]Example of using dput()

Being a new user here, my questions are not being fully answered due to not being reproducible.作为这里的新用户,由于不可重现,我的问题没有得到完全回答。 I read the thread relating to producing reproducible code but to avail.我阅读了与生成可重现代码有关的线程,但没有用。 Specifically lost on how to use the dput() function.特别迷失了如何使用 dput() 函数。

Could someone provide a step by step on how to use the dput() using the iris df for eg it would be very helpful.有人可以逐步提供有关如何使用 iris df 使用 dput() 的步骤,例如这将非常有帮助。

Using the iris dataset, which is handily included into R , we can see how dput() works:使用包含在R中的iris数据集,我们可以看到dput()是如何工作的:

data(iris)
head(iris)

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

Now we can get the whole dataset using dput(iris) .现在我们可以使用dput(iris)获取整个数据集。 In most situations, a whole dataset is unnecessary to provide for a Stackoverflow question, as a few lines of the relevant variables suffice as a working data example.在大多数情况下,为 Stackoverflow 问题提供整个数据集是不必要的,因为几行相关变量就足以作为工作数据示例。

Two things come in handy: The head() function outputs only the first six rows of a dataframe/matrix.有两件事派上用场: head()函数仅输出数据帧/矩阵的前六行。 Also, the indexing in R (via brackets) allows you to select only specific columns.此外, R中的索引(通过括号)允许您仅选择特定列。

Therefore, we can restrict the output of dput() using a combination of these two:因此,我们可以使用这两者的组合来限制dput()的输出:

dput(head(iris[, c(1, 3)]))

structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4), 
    Petal.Length = c(1.4, 1.4, 1.3, 1.5, 1.4, 1.7)), .Names = c("Sepal.Length", 
"Petal.Length"), row.names = c(NA, 6L), class = "data.frame")

will give us the code to reproduce the first (up to) six rows of column 1 and 3 of the iris dataset.将为我们提供重现iris数据集第 1 列和第 3 列的前(最多)六行的代码。

df <- structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4), 
    Petal.Length = c(1.4, 1.4, 1.3, 1.5, 1.4, 1.7)), .Names = c("Sepal.Length", 
"Petal.Length"), row.names = c(NA, 6L), class = "data.frame")

> df
  Sepal.Length Petal.Length
1          5.1          1.4
2          4.9          1.4
3          4.7          1.3
4          4.6          1.5
5          5.0          1.4
6          5.4          1.7

If the first rows do not suffice, we can skip using head() and rely on indexing only:如果第一行不够,我们可以跳过使用head()并仅依赖索引:

dput(iris[1:20, c(1, 3)])

structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 
5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1
), Petal.Length = c(1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 
1.5, 1.5, 1.6, 1.4, 1.1, 1.2, 1.5, 1.3, 1.4, 1.7, 1.5)), .Names = c("Sepal.Length", 
"Petal.Length"), row.names = c(NA, 20L), class = "data.frame")

will give us the the first twenty rows:会给我们前二十行:

df <- structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 
5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1
), Petal.Length = c(1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 
1.5, 1.5, 1.6, 1.4, 1.1, 1.2, 1.5, 1.3, 1.4, 1.7, 1.5)), .Names = c("Sepal.Length", 
"Petal.Length"), row.names = c(NA, 20L), class = "data.frame")

> df
   Sepal.Length Petal.Length
1           5.1          1.4
2           4.9          1.4
3           4.7          1.3
4           4.6          1.5
5           5.0          1.4
6           5.4          1.7
7           4.6          1.4
8           5.0          1.5
9           4.4          1.4
10          4.9          1.5
11          5.4          1.5
12          4.8          1.6
13          4.8          1.4
14          4.3          1.1
15          5.8          1.2
16          5.7          1.5
17          5.4          1.3
18          5.1          1.4
19          5.7          1.7
20          5.1          1.5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM