我在数据框中有一个向量,我希望将其拆分为多个列向量,如下所示:
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.
有关如何执行此操作的任何建议吗?
答案 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)