2017-03-17 40 views
-1

これは、私がウェブをやり取りし、いくつかの異なるコード部分(ベースR、dplyr、tidyr)を試したが、私はどこにいる必要があるのか​​は分かりません。各行は様々な数を有することができる私は私は複数列、複数行を複数列、単一行のデータフレームに変換する

client_id question bid1 bid2 bid3 bid4 bid5 bid6 bid7 
    2   101  7      
    7   101  4 97 5 10 97 14 7 
    9   101  6 97 16 2 7  

...に変換する必要があること...

client_id question brand_id 
     2   101   7 
     7   101   4 
     7   101   97 
     7   101   5 
     7   101   10 
     7   101   97 
     7   101   14 
     7   101   7 
     9   101   6 
     9   101   97 
     9   101   16 
     9   101   2 
     9   101   7 

をカラムの固定数のデータフレームを有しますただし、12列を超えることはありません。地域社会の援助は大いに評価されるでしょう!

+0

実際に試した内容を含めてください。 – HubertL

+0

'library(tidyverse); %>%var_paste0( 'bid'、row_number()))%>%spread(var、brand_id) 'のようになりますが、これは悪い考えですデータを整理しにくくします。グループ化やネストはおそらくあなたが運転しているものですが、より多くのコンテキストが必要になります。 – alistaire

+0

@alistaireは、洞察力のために、client_idと質問でグループ化してくれてありがとう。課題は列のばらつきです。 – user1185787

答えて

0

あなたがdata.tableとして、あなたのデータを持っている場合:

dcast(temp[,.(paste0("bid",1:(.N)), question,brand_id), 
      by=client_id], ...~V1) 

を多分もっと簡単な方法があります。

+1

コードの洞察をいただきありがとうございます。 – user1185787

関連する問題