如何在R中翻转行和列

时间:2015-11-11 02:16:27

标签: r

我目前有:

Country.Name   1995 1996 1997 ... 2013
Country1       
Country2        (numeric data)
Country3

- 这种格式很难绘制每个国家/地区的数据并进行比较,因为标题列是单独的年份

我想:

Year  Country1   Country2   Country3
1995
1996        
1997           (numeric data)
...
2013

2 个答案:

答案 0 :(得分:8)

df_transpose = t(df_original)

查看更多:http://www.r-statistics.com/tag/transpose/

答案 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))