以下のコードで作成された例のようなDFがあります。
a = data.frame( name = c(rep("Tim",5),rep("John",3)),id = c(rep(1,5),rep(2,3)), value = 1:7)
そして、このような結果に変換したいと思います。
b = data.frame( name = c("Tim","John"), ID = c(1:2), b = NA)
b$value = list(c(1:5),c(6:8))
この変換をどのように行うのですか?
実際のデータフレームでは、ID列の左側に多くの列があり、IDフィールドの右側に作成されるリストの列を使用して計算を実行します。
たとえば、上記のDF bで、引数として「Tim」を使用して関数呼び出しを実行し、リスト= {1,2,3,4,5}内の個々の要素とその出力をループすることができます。ループは、同じ数の要素を持つ別のリストです。
試してみてください
aggregate(value~.,a, FUN=c)
# name id value
#1 Tim 1 1, 2, 3, 4, 5
#2 John 2 6, 7, 8
a <- structure(list(name = structure(c(2L, 2L, 2L, 2L, 2L, 1L, 1L,
1L), .Label = c("John", "Tim"), class = "factor"), id = c(1,
1, 1, 1, 1, 2, 2, 2), value = 1:8), .Names = c("name", "id",
"value"), row.names = c(NA, -8L), class = "data.frame")
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加