将数据帧中的矢量拆分为列向量

时间:2015-06-04 20:41:02

标签: r split dataframe

我在数据框中有一个向量,我希望将其拆分为多个列向量,如下所示:

region.US  region.India region.France region.Greece  id 
  1            0              0            0          1
  0            1              0            0          2
  0            0              1            0          3
  0            0              0            1          4

我想按如下方式拆分数据框:

The remote server returned an error: (400) Bad Request.

有关如何执行此操作的任何建议吗?

3 个答案:

答案 0 :(得分:2)

要获得完全相同的输出:

cbind(setNames(as.data.frame(diag(nrow(df1))), paste0("region.", df1$region)),
      df1[,"id", drop=FALSE])
#   region.US region.India region.France region.Greece id
# 1         1            0             0             0  1
# 2         0            1             0             0  2
# 3         0            0             1             0  3
# 4         0            0             0             1  4

答案 1 :(得分:1)

试试这个,即使它不是你想要的。

t(table(df1))
   region
id  France Greece India US
  1      0      0     0  1
  2      0      0     1  0
  3      1      0     0  0
  4      0      1     0  0

答案 2 :(得分:1)

这几乎可行(列的顺序不相同,而且 列名不是以点分隔的):

df1 <- data.frame(region=c("US","India", "France", "Greece"),
                 id=1:4)
data.frame(model.matrix(~region-1,df1),id=df1$id)