0

私は R を初めて使用し、予算を表すデータ ファイルを持っています。目的の列で、1 つの目的のすべての値札を合計したいと思います。その目的は、csv を読み込むときに自動的に考慮されます。しかし、ファイルにいくつかのカウントがある目的に適切な価格を割り当てて、それらを合計するにはどうすればよいでしょうか?

このリンクからファイルを取得しました: http://www.berlin.de/imperia/md/content/senatsverwaltungen/finanzen/haushalt/ansatzn2013.xls?download.html

それを Open Office で開き、.csv ファイルをエクスポートして、ausgaben.csv という名前を付けました。

> ausgaben <- read.csv("ausgaben.csv")
> str(ausgaben)
'data.frame':   15895 obs. of  8 variables:
 $ Bereich         : Factor w/ 13 levels "(30) Senatsverwaltungen",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Einzelplan      : Factor w/ 28 levels "(01) Abgeordnetenhaus",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Kapitel         : Factor w/ 270 levels "(0100) Abgeordnetenhaus",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Titelart        : Factor w/ 1 level "Ausgaben": 1 1 1 1 1 1 1 1 1 1 ...
 $ Titel           : int  41101 41103 42201 42701 42801 42811 42821 44100 44304 44379 ...
 $ Titelbezeichnung: Factor w/ 1286 levels "Abdeckung von Geldverlusten",..: 57 973 182 67 262 257 95 127 136 797 ...
 $ Funktion        : Factor w/ 135 levels "(011) Politische Führung",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Euro            : Factor w/ 2909 levels "-1.083,0","-1.295,0",..: 539 2226 1052 1167 1983 1111 1575 2749 1188 1167 ...

"Funktionen" には、"Euro" の合計に対応する 135 のレベルがあります。「Funktionen」の対応するすべてのレベルの「Euro」のすべての数値を取得して合計したいので、135 ユーロの値を取得し、この予算でどのような目的に何が費やされたかを示すことができます。

4

2 に答える 2

1

これは、plyr ::: ddplyまたは他の多くの関数(ave、tapplyなど)を使用して実行できます。「ユーロ」は要因ではなく数値である必要があると思います。したがって、集計する前にこれを修正してください。

ここにあなたのデータがないので、おもちゃの例です:

set.seed(1234)
df <- data.frame(fac = sample(LETTERS[1:3], 50, replace = TRUE),
                 x = runif(50))

require(plyr)
ddply(df, .(fac), summarise, 
      sum_x = sum(x))
#   fac    sum_x
1   A 7.938613
2   B 6.692007
3   C 5.645078
于 2013-03-18T10:59:37.323 に答える
0

パッケージでxlsファイルを読むことができます:gdata

library(gdata)
ausgaben <- read.xls("ansatzn2013.xls")

まず、列の値をAnsatz.2013.inkl..Nachtrag.in.Tsd..EUR因子から数値に変換する必要があります。

Euro <- as.character(ausgaben$Ansatz.2013.inkl..Nachtrag.in.Tsd..EUR)
Euro <- as.numeric(sub(",", "", Euro))

次に、aggregate関数 を使用して合計を計算できます。

aggregate(Euro ~ ausgaben$Funktion, FUN = sum)
于 2013-03-18T11:19:58.077 に答える