[英]Determine if a tibble is grouped or not
是否有一個函數來確定一個 tibble 是否是一個分組的。
我使用以下代碼在不縮小數據集的情況下創建聚合變量:
mydataset %>% select(count, group) %>%
group_by(group) %>%
mutate(count_group = sum(count))
如果我使用 mutate,我有一個分組的 tibble。 如果我使用總結,我有一個簡單的小標題。
是否有像as.grouped()
這樣的函數可以確定分組的字符?
函數is.grouped_df()
和is_grouped_df()
都將返回一個 TRUE 邏輯,如果它是一個分組的 tibble,如果不是,則返回 FALSE。
# Create a tibble
df <- tibble(x = c(5, 2, NA))
# Group by column 'x'
gdf <- group_by(df, x)
# Returns FALSE
is.grouped_df(df)
# Returns TRUE
is.grouped_df(gdf)
當然你知道你可以使用ungroup()
來刪除任何分組。 無論如何,有一種很好的方法可以確定數據幀是否已分組,這只需打印數據幀即可。 分組變量將出現在頂部。
dataframe <- data_frame('group' = c('a','a','b'),
'value' = c(1,2,3))
dataframe %>% group_by(group)
Source: local data frame [3 x 2]
**Groups: group [2]**
group value
<chr> <dbl>
1 a 1
2 a 2
3 b 3
分組信息保存為屬性。 例子:
library("tidyverse")
a <- mtcars %>% group_by(cyl)
attributes(a)
$names
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
[11] "carb"
$row.names
[1] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710"
[4] "Hornet 4 Drive" "Hornet Sportabout" "Valiant"
[7] "Duster 360" "Merc 240D" "Merc 230"
[10] "Merc 280" "Merc 280C" "Merc 450SE"
[13] "Merc 450SL" "Merc 450SLC" "Cadillac Fleetwood"
[16] "Lincoln Continental" "Chrysler Imperial" "Fiat 128"
[19] "Honda Civic" "Toyota Corolla" "Toyota Corona"
[22] "Dodge Challenger" "AMC Javelin" "Camaro Z28"
[25] "Pontiac Firebird" "Fiat X1-9" "Porsche 914-2"
[28] "Lotus Europa" "Ford Pantera L" "Ferrari Dino"
[31] "Maserati Bora" "Volvo 142E"
$class
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
$groups
# A tibble: 3 x 2
cyl .rows
<dbl> <list>
1 4 <int [11]>
2 6 <int [7]>
3 8 <int [14]>
attributes
函數可用於檢查分組屬性的存在:
any(names(attributes(a)) == "groups")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.