將數據框架從寬格式轉換為長格式將我data.frame從寬表轉換為長表時遇到一些麻煩。目前它看起來像這樣:Code Country 1950 1951 1952 1953 1954AFG Afghanistan 20,249 21,352 22,532 23,557 24,555ALB Albania 8,097 8,986 10,058 11,123 12,246現在我想把它data.frame變成一個長期的data.frame。像這樣的東西:Code Country Year ValueAFG Afghanistan 1950 20,249AFG Afghanistan 1951 21,352AFG Afghanistan 1952 22,532AFG Afghanistan 1953 23,557AFG Afghanistan 1954 24,555ALB Albania 1950 8,097ALB Albania 1951 8,986ALB Albania 1952 10,058ALB Albania 1953 11,123ALB Albania 1954 12,246我已經看過并且已經嘗試過使用melt()和reshape()一些人在類似問題中建議的功能。但是,到目前為止我只得到凌亂的結果。如果有可能我想用這個reshape()功能來做,因為它看起來有點好處理。
3 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
使用重塑包:
#data
x <- read.table(textConnection(
"Code Country 1950 1951 1952 1953 1954
AFG Afghanistan 20,249 21,352 22,532 23,557 24,555
ALB Albania 8,097 8,986 10,058 11,123 12,246"), header=TRUE)
library(reshape)
x2 <- melt(x, id = c("Code", "Country"), variable_name = "Year")
x2[,"Year"] <- as.numeric(gsub("X", "" , x2[,"Year"]))

ITMISS
TA貢獻1871條經驗 獲得超8個贊
reshape()需要一段時間才能習慣,就像melt/ cast。假設您的數據框被調用,這是一個重塑的解決方案d:
reshape(d, direction = "long", varying = list(names(d)[3:7]), v.names = "Value",
idvar = c("Code","Country"), timevar = "Year", times = 1950:1954)
- 3 回答
- 0 關注
- 967 瀏覽
添加回答
舉報
0/150
提交
取消