1つの方法は、aggregate()
関数を使用することです。差出人?aggregate
:
データをサブセットに分割し、それぞれの要約統計量を計算して、便利な形式で結果を返します
まず、データを読み込みます(再現可能な例を提供するために、将来的に質問でこれを行う必要があります。「優れたRの再現可能な例を作成する方法」を参照してください)。
txt <- "user1, hashtag1, hashtag2
user1, hashtag3, hashtag4
user2, hashtag5, hashtag6
user2, hashtag7, hashtag8"
x <- read.delim(file = textConnection(txt), header = F, sep = ",",
strip.white = T, stringsAsFactors = F)
次に、を使用aggregate()
してデータをサブセットに分割し、各サブセットを1次元配列に変換します。
aggregate(x[-1], by = x[1], function(z)
{
dim(z) <- c(length(z)) # Change dimensions of z to 1-dimensional array
z
})
# V1 V2.1 V2.2 V3.1 V3.2
# 1 user1 hashtag1 hashtag3 hashtag2 hashtag4
# 2 user2 hashtag5 hashtag7 hashtag6 hashtag8
編集
このアプローチは、すべてのユーザーが同じ数のハッシュタグを持っている場合にのみ機能しますが、これはありそうもないことです。@JoshO'Brienの答えはより良いアプローチです。