Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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
将str()输出发送到View()_R_Dataframe_View_Metadata - Fatal编程技术网

将str()输出发送到View()

将str()输出发送到View(),r,dataframe,view,metadata,R,Dataframe,View,Metadata,我正在调查一个包含313个变量的数据集中的变量。 我目前正在使用以下方式将打印到输出屏幕: str(df, list.len=ncol(df)) str() 是否有类似于str(),但允许将输出发送到查看器窗口(View())的命令 这将非常有用: library(dplyr) d %>% str() %>% View() 输出具有以下内容的数据集:varnames、vartype、value\u string 这是否存在?根据您的描述,这里的实现看起来是可行的。它将st

我正在调查一个包含313个变量的数据集中的变量。 我目前正在使用以下方式将打印到输出屏幕:

str(df, list.len=ncol(df))
str()

是否有类似于
str()
,但允许将输出发送到查看器窗口(
View()
)的命令

这将非常有用:

library(dplyr)    
d %>% str() %>% View()
输出具有以下内容的数据集:varnames、vartype、value\u string


这是否存在?

根据您的描述,这里的实现看起来是可行的。它将str()的结果输出到data.frame,然后您可以在View()中使用它

#'为data.frames创建str函数的\code{data.frame}版本。
#' 
#'请注意,此函数仅适用于\code{data.frames}。功能
#'将为任何其他对象类型引发错误。
#' 
#“@param n要显示的第一个n元素
#“@param width示例显示的最大字符宽度
#“@param n.levels要显示的因子的前n个级别。
#“@param width.levels要显示的级别数的最大宽度(以字符为单位)。
#“@param factor.values函数定义应如何打印因子示例。
#'可能的值是\code{as.character}或\code{as.integer}。
#“@出口
#“@示例
#'数据(iris)
#'str(iris)
#'标准表格(iris)
#'strtable(iris,factor.values=as.integer)

strtable您可以使用
capture.output
获取所需内容。但是,它不能很好地与magrittr的管道配合使用。以下工作:

library("magrittr") # The package and some toy data
obj <- list(a = list(b = list()), c = list(), d = numeric(10))

capture.output(obj %>% str) %>% View
以下“原始”链接不起作用:


也许你想要像这样的东西

View(capture.output(str(x <- 1:5)))

View(capture.output(str)(x这里有一个简单的函数应该可以工作:

str_tbl <- function(x, n=5) {
  data.frame(Variable = names(x),
             Classe = sapply(x, typeof),
             Values = sapply(x, function(x) paste0(head(x, n = n), 
               collapse = ", ")),
             row.names = NULL)
}

str\u tbl
%%>%%
不是基本的R函数。请在问题正文中列出您正在使用的任何软件包的名称。查看手册
?str
,答案是否定的,或者至少不是直接的。从“值”部分:“出于效率考虑,str不返回任何内容。明显的副作用是输出到终端。“因此,无法直接从
str
捕获任何内容。也许您可以将打印语句重定向到临时文件,并使用
read.table
…从
?视图
,此函数需要一些可以强制转换为data.frame的内容。我知道这大约有2年的历史,但可以将其存储在CSV中。”(受您的解决方案启发):capture.output(obj%%>%str)%%>%write.csv(“filename.csv”)
obj %>% str %>% capture.output %>% View
View(capture.output(str(x <- 1:5)))
str_tbl <- function(x, n=5) {
  data.frame(Variable = names(x),
             Classe = sapply(x, typeof),
             Values = sapply(x, function(x) paste0(head(x, n = n), 
               collapse = ", ")),
             row.names = NULL)
}