我目前有:
Country.Name 1995 1996 1997 ... 2013
Country1
Country2 (numeric data)
Country3
- 这种格式很难绘制每个国家/地区的数据并进行比较,因为标题列是单独的年份
我想:
Year Country1 Country2 Country3
1995
1996
1997 (numeric data)
...
2013
答案 0 :(得分:8)
df_transpose = t(df_original)
答案 1 :(得分:5)
假设您有此数据框df
,请参阅下面的数据。
Country.Name 1997 1998 1999 2000
1 Country1 1 1 1 1
2 Country2 2 4 7 10
3 Country3 4 2 1 5
首先,您必须转置除第一列以外的所有数据框。结果是我们需要转换为数据帧的矩阵。最后,我们将df2
的列名称指定为原始数据框df
的第一列。
df2 <- data.frame(t(df[-1]))
colnames(df2) <- df[, 1]
<强>输出:强>
Country1 Country2 Country3
1997 1 2 4
1998 1 4 2
1999 1 7 1
2000 1 10 5
数据:强>
df <- structure(list(Country.Name = c("Country1", "Country2", "Country3"
), `1997` = c(1L, 2L, 4L), `1998` = c(1L, 4L, 2L), `1999` = c(1L,
7L, 1L), `2000` = c(1L, 10L, 5L)), .Names = c("Country.Name",
"1997", "1998", "1999", "2000"), class = "data.frame", row.names = c(NA,
-3L))