2017-10-27 5 views
0

パッケージdplyrのgroup_by内のsummarize関数に問題があります。要約変数group_byの中で、文字列変数に別の変数の値をn回乗算する方法は?

これは、データフレームがどのように見えるかです:

df <- read.table(text="id groups times strings 
1 1  a  1  xxx 
2 2  a  2  zzz 
3 3  a  1  yyy 
4 4  b  1  xxx 
5 5  b  1  yyy 
6 6  b  1  xxx 
7 7  c  3  yyy 
8 8  c  1  xxx 
9 9  c  1  xxx 
10 10  c  1  yyy", stringsAsFactors=FALSE) 

私はこのようになりますデータフレームを取得するために、変数「グループ」をGROUP_BYする必要があります。

view(group.df) 
    id2 groups2       c.string 
1 1  a    'xxx','zzz','zzz','yyy' 
2 2  b     'xxx','yyy','xxx' 
3 3  c 'yyy','yyy','yyy','xxx','xxx','yyy' 


str(group.df) 
'data.frame': 3 obs. of 3 variables: 
$ id2  : int 1 2 3 
$ groups2 : chr "a" "b" "c" 
$ c.string: chr "'xxx','zzz','zzz','yyy'" "'xxx','yyy','xxx'" 
"'yyy','yyy','yyy','xxx','xxx','yyy'" 

私の問題は、そのIドンであります文字列変数 "df $ strings"に "df $ times"の値を掛けるためにgroup_byにネストされている要約関数をコード化する方法を知っています。

ありがとうございました。

答えて

0

あなただけのid列を無視しているように思えるので、これは

df %>% 
    group_by(groups) %>% 
    summarize(c.string=paste(sQuote(rep(strings, times)), collapse=",")) 
# groups       c.string 
# <chr>        <chr> 
# 1  a    ‘xxx’,‘zzz’,‘zzz’,‘yyy’ 
# 2  b     ‘xxx’,‘yyy’,‘xxx’ 
# 3  c ‘yyy’,‘yyy’,‘yyy’,‘xxx’,‘xxx’,‘yyy’ 
を動作するはずです
関連する問題