2015-11-11 38 views
0

行和列我目前有:如何翻转中的R

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

- 此格式使得很难图表中的数据对每一个国家,并加以比较,因为标题列在个别年份

我想:

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

搜索 “R转置”。 –

回答

0

假设您有此数据框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)) 
1
df_transpose = t(df_original) 

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

+0

当我调换行和列时,新数据框的列名不会出现。 R不会让我输入df_transposed $ column_name。我得到“$运算符对原子向量无效” – lr1116

+0

你可以用你的数据框本身的一些信息更新你的问题吗?试试'str(df_original)' –