私はまずはstackoverflowへようこそ。新しいユーザーがついてうれしいです。質問をするときは、使用しているコードと元のように見える再現可能なデータセットを提供することが有益で奨励されています。これは最小再現可能な例と呼ばれます。ここにデータセットを取得するには、いくつかのオプションを使用できます。ここには2つあります:オブジェクト名の前後にdput()
を使用し、コンソールに表示されているものをカットアンドペーストするか、データフレームを直接ポストするだけです。コードには、問題を再現するために必要なすべてのコードを提供します。今後のご質問にお役立てください。
私は完全に理解していないかもしれませんが、私はあなたがデータを変換するのではなく、変換したいと思っています。ブライアンのコメントと変数を見て
dat <- data.frame(market=rnorm(10), date=rnorm(10), #let's create a data set
sitename=rnorm(10), impression=rnorm(10), clicks=rnorm(10))
dat #look at it (I pasted it below)
# > dat
# market date sitename impression clicks
# 1 -0.9593797 -0.08411994 1.6079129 -0.5204772 -0.31633966
# 2 -0.5088689 1.78799500 -0.2469315 1.3476964 -0.04344779
# 3 -0.1527465 0.81673996 1.7824969 -1.5531260 -1.28304384
# 4 -0.7026194 0.52072913 -0.1174356 0.5722210 -1.20474443
# 5 -0.4537490 -0.69139062 1.1124277 -0.2452974 -0.33025320
# 6 0.7466588 0.36318337 -0.4623319 -0.9036768 -0.65754302
# 7 0.8007612 2.59588554 0.1820732 0.4318629 -0.36308748
# 8 1.0781715 -1.01512734 0.2297475 0.9219439 -1.15687902
# 9 0.3731450 -0.19004572 0.5190749 -1.4020371 -0.97370295
# 10 0.7724259 1.76528303 0.5781786 -0.5490849 -0.83819036
#now to create the new columns (I think this is what you want)
#the easiest way is to use transform. ?tranform for more
dat.new <- transform(dat, sitename.clicks=sitename-clicks,
impression.clicks=impression-clicks)
dat.new #here's the new data set. Notice it has the new and old columns.
#To get rid of the old columns you can use indexing and specify the columns you want.
dat.new[, c(1:2, 6:7)]
#We could have also done:
dat.new[, c(1,2,6,7)]
#or said the columns not wanted with negative indexing:
dat.new[, -c(3:5)]
EDITは、私は長い広い変換には、どのようなポスターの欲望であると思うだろう。私はWickhamのreshape2パッケージを使ってアプローチする方がよいでしょう。この方法は私にとっては使いやすく、Rの初心者にとっても簡単だと思います。しかし、ブライアンは提供し、ここで同じデータを使用して幅広いフォーマットに長いを行うための基本方法は次のとおりです。
wide <- reshape(DF, v.names=c("impression", "clicks"), idvar=c("market", "date"),
timevar="sitename", direction="wide")
reshape(wide)
リシェイプ機能は非常に柔軟ですが、一部が適切に使用するために慣れが必要。私は今これがポスターの意図ではないと信じていますが、私はこの投稿の歴史を維持するために私の以前の応答を残しています。これは、再現可能な例がクエリを明確にするのに非常に役立つことを思い出させるものです。
'reshape'や' reshape'パッケージから 'cast'や' melt'のようなものを探しています。私はSASに精通していないので、あなたが与えた機能の出力は何か分かりません。あなたは入力データと希望する出力の小さなサンプルを提供できますか? – Justin
ああ、ポスターがワイドからロングに行きたいと思うかもしれない。それは私の答えを無視する場合です。 –
@Justin変数名を見るとあなたの提案が最も理にかなっていますが、ポスターが自分が何を持っているか、何を期待しているか(または自分が持っているデータを表現しているか)のデータセットを提供するまでは私は答えを編集していません –