У меня есть следующие dataframe, df
:г: группа по нескольким столбцам и сосчитать
LeftOrRight SpeedCategory NumThruLanes
R 25to45 3
L 45to62 2
R Gt62 1
Я хочу сгруппировать его по SpeedCategory и проходным других столбцов, чтобы получить частоту каждого уникального кода в каждой скорости категорию-- что-то вроде этого:
25to45 45to62 Gt62
LeftOrRight L 0 1 0
R 1 0 1
NumThruLanes 1 0 0 1
2 0 1 0
3 1 0 0
ближайший я смог прийти к это:
for (col in df){
tbl <- table(col, df$SpeedCategory)
print(tbl)
}
, которая печатает следующий (первый SpeedCategory, затем NumThruLanes):
col 25to45 45to62 Gt62
L 0 1 0
R 1 0 1
col 25to45 45to62 Gt62
1 0 0 1
2 0 1 0
3 1 0 0
Я уверен, что я могу достичь своей цели с aggregate()
или, может быть group_by от dplyr
, но я новичок в R и не могу понять из синтаксиса. В pandas
я бы использовал MultiIndex
, но я не знаю, что такое эквивалент R, так что Google трудно.
Я хотел бы попробовать сделать все за один проход или с помощью цикла, так как у меня есть более дюжины столбцов, чтобы пройти.
Это именно то, что мне нужно, спасибо! Мне пришлось преобразовать все мои столбцы в факторы с помощью lapply (df, factor), и после этого он отлично справился. – ale19