将str()输出发送到View()
我正在调查一个包含313个变量的数据集中的变量。 我目前正在使用以下方式将打印到输出屏幕:将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
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)
}