0

このようなデータフレームがあります。

df <- data.frame(year = c(1978, 1978, 1979, 1979), bus = c("29C", "12B", "25G", "27C"))

年列に一意の値を作成し、バス列の値をマージしたいと考えています。期待される出力は次のとおりです

# year  bus
# 1978  29C,12B
# 1979  25G,27C

私が試したコードと私が得た出力

library(dplyr)
df %>% group_by(year) %>% distinct(year) %>% unite(bus, sep = ",", na.rm = F)

# A tibble: 2 x 1
# bus  
#  <chr>
#1 1978 
#2 1979 

コードのどこが間違っていて、どうすれば期待どおりの出力を得ることができますか?

4

1 に答える 1

1

(コメント後に編集)

1つの可能な解決策は

df %>% 
  group_by(year) %>% 
  summarise(bus = paste(bus, collapse = ",")) 

出力

# A tibble: 2 x 2
# Groups:   year [2]
#    year bus    
#   <dbl> <chr>  
# 1  1978 29C,12B
# 2  1979 25G,27C
于 2020-06-30T13:35:30.827 に答える