将数据框架从宽格式转换为长格式将我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 关注
- 936 浏览
添加回答
举报
0/150
提交
取消