这是一个小问题,但在R中键入head(data.frame)时,您会从显示的所有列中获取前几条记录。在dplyr包中,head函数已被更改为仅显示可适合您的控制台窗口的列。这通常很好,但我经常想看到所有列的前几条记录。有没有办法告诉head(在dplyr中)显示所有列而不将tbl.df / data.frame转换为data.frame(我更喜欢head to str())。
谢谢!
ZR
答案 0 :(得分:9)
您现在可以在dplyr 0.2中使用glimpse()
动词:
来自https://github.com/hadley/dplyr/releases:
"
glimpse()
可以查看tbl中的所有列, 显示每个变量的数据,可以放在一行上。"
答案 1 :(得分:2)
正如Arun所说,这是因为print.tbl_df方法。 只是做:
print.data.frame(head(your_dplyr_dataframe))
答案 2 :(得分:2)
为什么不定义自己的head
- 类型函数。我用这个。它已根据data.table
进行了调整。这样,你可以看看你想要的任何东西。前3行设置为默认值以节省空间。
peek <- function(d, x = ncol(d))
{
if (is.data.table(d)) d[1:3, 1:x, with = FALSE]
else if (is.data.frame(d) | is.matrix(d)) d[1:3, 1:x]
} ## note the 3 row default (to save space below)
在data.table
上:
> library(data.table)
> emteecars <- as.data.table(mtcars)
> peek(emteecars, 5)
# mpg cyl disp hp drat
# 1: 21.0 6 160 110 3.90
# 2: 21.0 6 160 110 3.90
# 3: 22.8 4 108 93 3.85
> peek(emteecars)
# mpg cyl disp hp drat wt qsec vs am gear carb
# 1: 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
# 2: 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
# 3: 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
现在正在data.frame
:
> peek(mtcars)
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
# Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
> peek(as.matrix(mtcars), 2)
# mpg cyl
# Mazda RX4 21.0 6
# Mazda RX4 Wag 21.0 6
# Datsun 710 22.8 4
答案 3 :(得分:2)
答案 4 :(得分:0)
您还可以只将head(data)分配给变量,应该保持tbl_df
test <- head(data)
不会显示在控制台窗口中,但可能对您有用