-2

国とその国コードのリストを含む 1 つのデータ フレームがあります。Rで、特定の範囲の年の国年ファイルを作成できるようにしたいと思います。

したがって、国のデータフレームは次のようになります

コード 国
2 米国
20 カナダ
31 バハマ

そして、私はしたいです

コード 国 年
2 米国 1945
2 米国 1946
2 米国 1947
2 米国 1948
20 カナダ 1945
20 カナダ 1946
20 カナダ 1947
20 カナダ 1948

とても単純な質問ですが、1 時間運がなかったので、助けていただければ幸いです。

ありがとう!

4

2 に答える 2

0

マージ変数は、あなたが何をしているのか(とにかくだと思います)、以下のコードを見て、あなたが何をしているのかを確認できます。

# replicate data
countries <- c(rep("United States",4),rep("Canada",4))
dates <- c("1945","1946","1947","1948","1945","1946","1947","1948")

dates.country <- as.data.frame(cbind(countries,dates))

code.country <- as.data.frame(matrix(c("2","United States","20","Canada","31","Bahamas"),ncol=2, byrow = TRUE))

# set names for code.country
# variables to be merge on variable names must match

names(code.country) <- c("code","countries")

# this form of merge replicates what you want
combined.country <- merge(dates.country,code.country)

# there are a lot of options for merge so it is worth looking at
# ?merge to get and idea of what it can do. For example adding the 
# all=TRUE flag will mean that all data is represented even if it
# is only in one dataset

combined.country.all <- merge(dates.country,code.country, all=TRUE)
于 2013-11-11T21:49:45.363 に答える
0
df <- read.table(text="Code Country
2 'United States'
20 'Canada'
31 'Bahamas'", header=T)

year   <- 1945:2005
len    <- length(year)
code   <- rep(df$Code,    each=len)
ctry   <- rep(df$Country, each=len)
dframe <- data.frame(code=code, country=ctry, year=year)
rm(code, year, len, ctry, df)
dframe
于 2013-11-11T21:30:54.793 に答える