将列转换为行

时间:2016-06-01 10:30:03

标签: r

我想将列转换为行。因此我使用“reshape”函数来完成它。更确切地说,我有:

`n = c(2, 3, 5) 
s = c("aa", "bb", "cc") 
b = c(TRUE, FALSE, TRUE) 
df = data.frame(n, s, b)`

问题是我对每个“n”都有几个“s”值(总是重复相同)。

我用:

reshape(df, idvar = "s", ,direction = "wide", varying = list("b"))

我在某个地方犯了一个错误,但我无法理解。

1 个答案:

答案 0 :(得分:0)

您可以使用cbind.data.frame()以及table()功能

> df <- data.frame(Country = c("Aus","Ind","NZ"), Year= c(1956,1957,1958))
> df
   Country Year
 1     Aus 1956
 2     Ind 1957
 3      NZ 1958

> table(cbind.data.frame(df$Country,df$Year))
               df$Year
df$Country 1956 1957 1958
       Aus    1    0    0
       Ind    0    1    0
       NZ     0    0    1