2

基本的に、私が実行する必要があるのは、国の変数を1人当たりの用語に変換することです。つまり、すべての値を国の人口で除算します。

だから私は持っていますdf

country <- c("A","B","C","D")
income <- c(10,20,30,40)
cars <- c(100,200,300,400)
df <- data.frame(country,income,cars)

そして、すべての列をで除算したいdfpop$pop

pop <- c(1,2,3,4)

dfpop <- data.frame(country,pop)

何か案は?

4

1 に答える 1

3

国ごとに観測値が1つしかないため、データを集計する必要はありません。df/variable

@lselzerによって上記で指摘されたマージを考慮に入れると、次のことを試すことができます。

 DF <- merge(df, dfpop)
 DF[,-c(1,4)]/DF[,4]
  income cars
1     10  100
2     10  100
3     10  100
4     10  100

しかし、使用せずにmerge

df[,-1]/pop
  income cars
1     10  100
2     10  100
3     10  100
4     10  100

を使用する利点はmerge、国名が一致することです。これにより、国の各変数を国Aの人口で確実に除算できますA。2番目のアプローチでは、国の変数の一致が保証されないため、このアプローチを使用するように注意する必要があります。

于 2012-08-23T15:25:23.540 に答える