2016-06-01 114 views
-1

我想将列转换为行。因此我使用“重塑”功能来做到这一点。更确切地说,我有:将列转换为行

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

事情是,我有几个“s”的值(总是相同的重复)为每个“n”。

我用:

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

我犯了一个错误的地方,但我无法弄清楚。

+0

使用'dput',不与'images'请出示重复的例子。此外,图像不清楚,有很多空白。 – akrun

+0

从zoo包中查看na.locf,然后[将数据从长格式重新整形为宽格式](http://stackoverflow.com/questions/5890584) – zx8754

回答

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