2014-05-01 23 views
5

Bu küçük bir sorundur, ancak R (head) yazdığınızda, R sütununda görüntülenen tüm sütunlardan ilk birkaç kaydı alırsınız. Dplyr paketinde, kafa işlevi yalnızca konsol pencerenize sığabilecek sütunları göstermek için değiştirildi. Bu genellikle güzel, ancak genellikle tüm sütunlar için ilk birkaç kaydı görmek istiyorum. Tbl.df/data.frame dosyasını bir data.frame dosyasına dönüştürmeden tüm sütunları göstermeye (dplyr içinde) bir yol var mı (ve ben str() 'ye kafa tercih ederim).head() işlevi, R paketindeki dplyr

Teşekkürler!

Arun söylediği gibi ZR

+0

dplyr bir kafa işlevi var mı? – rawr

+0

Ayrıca bkz .: http://stackoverflow.com/questions/23188900/view-entire-dataframe-when-wrapped-in-tbl-df/23189030#23189030 – Henrik

+0

@Henrik, sütunlarda da çalıştığından emin misiniz? – Arun

cevap

6

şimdi dplyr 0.2 glimpse() fiil kullanabilirsiniz:

https://github.com/hadley/dplyr/releases den:

"glimpse() bir tbl tüm sütunları görmek mümkün kılar, , her bir değişken için tek bir satıra sığabilecek kadar fazla veri görüntülemektedir "

+0

glimpse() iyi ve cevabı al (daha çok head() stili yönelime alışkınım ve str() için head() tercih ediyorum. Kendi işlevimi yaratma hakkındaki soruya cevap olarak - kesinlikle bu iyi bir yaklaşım.Fakat genelde R'yi öğretirim ve küçük kişisel işlevlerimin ders notlarına ulaşacaklarını bulursam, mümkünse mevcut paketlerin işlevlerini kullanmayı tercih ederim. Herkese teşekkürler! – ZRoss

2

bunun nedeni print.tbl_df yönteminin bu. Sadece yapın:

print.data.frame(head(your_dplyr_dataframe)) 
+0

Yardımlarınız için teşekkürler. Belki de bunu açıklamalıydım. Ancak head() işlevi yararlıdır, çünkü verileri görüntülemenin süper hızlı bir yoludur. kafa (veri) ve bitti. Ama print.data.frame (head (dplyr_df)) yazmam gerekirse, her defasında bu hedefi yener. Kesinlikle kafa yapabilirim (data.frame (dplyr_df)) ama bu çok fazla yazıyor. Hadley'in bir çeşit kafaya dahil olduğunu düşündüm (dplyr_df, inclCol = T). Sanırım hayır? – ZRoss

2

Neden sadece kendi head -type işlevinizi tanımlamıyorsunuz. Bunu kullanıyorum. data.table için ayarlandı. Bu şekilde, ne istersen ona bakabilirsin. İlk 3 satır, alan kazanmak için varsayılan olarak ayarlanır.

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 bir Açık: Bir data.frame üzerine Şimdi

> 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 

:

> 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 
2

görüntülenir kaç sütun kontrol etmek tibble.width seçeneğini ayarlayın. Daha fazla bilgi için bkz: ?print.tbl_df.