Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 获取命令以重新创建比使用dput()更简单的对象_R_Reproducible Research - Fatal编程技术网

R 获取命令以重新创建比使用dput()更简单的对象

R 获取命令以重新创建比使用dput()更简单的对象,r,reproducible-research,R,Reproducible Research,dput的输出通常比用户为创建同一对象而键入的内容复杂得多。我理解这可能是保证100%再现性所必需的(例如,当不同的用户使用不同的默认设置时)。然而,它并没有使示例尽可能可读,我经常花一些时间简化输出 例如,考虑: dput(data.frame(a=1:10)) > structure(list(a = 1:10), .Names = "a", row.names = c(NA, -10L), class = "data.frame") 除了dput之外,难道没有其他方法可以简单地返回

dput
的输出通常比用户为创建同一对象而键入的内容复杂得多。我理解这可能是保证100%再现性所必需的(例如,当不同的用户使用不同的默认设置时)。然而,它并没有使示例尽可能可读,我经常花一些时间简化输出

例如,考虑:

dput(data.frame(a=1:10))
> structure(list(a = 1:10), .Names = "a", row.names = c(NA, -10L), class = "data.frame")

除了
dput
之外,难道没有其他方法可以简单地返回
data.frame(a=1:10)

这里是data.frames的部分实现(没有行名称或其他属性):


下面是data.frames(无row.names或其他属性)的部分实现:


下面是data.frames(无row.names或其他属性)的部分实现:


下面是data.frames(无row.names或其他属性)的部分实现:


我不明白为什么您会担心
dput
输出的复杂性,因为它不是用来读取的,而是用来复制和粘贴的——在这种情况下,复杂性在我看来并不重要。要获得更具可读性的表示,请使用
str(data.frame(a=1:10))
@初学者如果要将其嵌入stackoverflow问题中,可复制和可读性比仅可复制要好。@tonytonov我应该更新我的问题标题。。。我不需要任何表示,只需要一个重新创建对象的命令。对不起,我忘了提那件事。你学习了吗?在我看来,这是一个可能的重复。我不明白为什么您会担心
dput
输出的复杂性,因为它不是用来读取的,而是用来复制和粘贴的——在这种情况下,复杂性在我看来并不真的重要。要获得更具可读性的表示,请使用
str(data.frame(a=1:10))
@初学者如果要将其嵌入stackoverflow问题中,可复制和可读性比仅可复制要好。@tonytonov我应该更新我的问题标题。。。我不需要任何表示,只需要一个重新创建对象的命令。对不起,我忘了提那件事。你学习了吗?在我看来,这是一个可能的重复。我不明白为什么您会担心
dput
输出的复杂性,因为它不是用来读取的,而是用来复制和粘贴的——在这种情况下,复杂性在我看来并不真的重要。要获得更具可读性的表示,请使用
str(data.frame(a=1:10))
@初学者如果要将其嵌入stackoverflow问题中,可复制和可读性比仅可复制要好。@tonytonov我应该更新我的问题标题。。。我不需要任何表示,只需要一个重新创建对象的命令。对不起,我忘了提那件事。你学习了吗?在我看来,这是一个可能的重复。我不明白为什么您会担心
dput
输出的复杂性,因为它不是用来读取的,而是用来复制和粘贴的——在这种情况下,复杂性在我看来并不真的重要。要获得更具可读性的表示,请使用
str(data.frame(a=1:10))
@初学者如果要将其嵌入stackoverflow问题中,可复制和可读性比仅可复制要好。@tonytonov我应该更新我的问题标题。。。我不需要任何表示,只需要一个重新创建对象的命令。对不起,我忘了提那件事。你学习了吗?在我看来,这是一个可能的重复。
dput2 <- function(x, ...) UseMethod("dput2")
dput2.data.frame <- function(x, ...) {
    fun <- function(nm) paste(nm, "=", 
            paste(capture.output(dput(x[[nm]], file = stdout())), collapse = ""))
    L <- lapply(names(x), fun)
    cat(paste("data.frame(", paste(unlist(L), collapse = ",\n"), ")"), "\n")
}
> dput2(BOD)
data.frame( Time = c(1, 2, 3, 4, 5, 7),
demand = c(8.3, 10.3, 19, 16, 15.6, 19.8) ) 

> dput2(anscombe)
data.frame( x1 = c(10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5),
x2 = c(10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5),
x3 = c(10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5),
x4 = c(8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8),
y1 = c(8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68),
y2 = c(9.14, 8.14, 8.74, 8.77, 9.26, 8.1, 6.13, 3.1, 9.13, 7.26, 4.74),
y3 = c(7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73),
y4 = c(6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.5, 5.56, 7.91, 6.89) )