2

基本上我需要执行的是将我的国家变量转换为人均项,即将所有值除以该国的人口。

所以我有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

由于每个国家/地区只有一个观察值,因此不需要汇总数据,只需使用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是国家名称的匹配,这将确保您将 country 的每个变量除以 countryA的人口A。第二种方法不能确保国家变量的匹配,所以你必须小心使用这种方法。

于 2012-08-23T15:25:23.540 回答