首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据另一列的数值序列动态添加列

如何根据另一列的数值序列动态添加列
EN

Stack Overflow用户
提问于 2018-03-05 13:40:20
回答 1查看 257关注 0票数 2

如何根据来自另一列的数值​​序列动态地在数据中添加列?我希望根据来自另一列的值将n列添加到dataframe中。我有什么,我想要什么

我有这个:

代码语言:javascript
运行
复制
head(df)
     x  y
[1]  1 ola
[2]  2 ola
[3]  3 ola
[4]  5 ola
[5]  4 ola
[6]  2 ola
[7]  3 ola
[8]  1 ola
[9]  5 ola
[10] 4 ola
[11] 2 ola
[12] 3 ola
[13] 5 ola
[14] 4 ola
[15] 1 ola
[16] 2 ola
[17] 3 ola
[18] 5 ola
[19] 4 ola
[20] 1 ola
[21] 3 ola
[22] 5 ola
[23] 2 ola
[24] 1 ola
[25] 4 ola
[26] 2 ola

在我的例子中,我有一个带有18列的dataframe,并且每个列都有3305708行。那么,我想做什么?我希望基于列值x动态添加列。也就是说,在本例中,添加更多的5列,其值为01。如下所示:

代码语言:javascript
运行
复制
head(df)
     x   y   x_1 x_2 x_3  ...
[1]  1  ola   1   0   0   ...
[2]  2  ola   0   1   0   ...
[3]  3  ola   0   0   1   ...
[4]  5  ola   0   0   0   ...
[5]  4  ola   0   0   0   ...
[6]  2  ola   0   1   0   ...
[7]  5  ola   0   0   0   ...
[8]  1  ola   1   0   0   ...
[9]  5  ola   0   0   0   ...
[10] 4  ola   0   0   0   ...
[11] 2  ola   0   1   0   ...
[12] 3  ola   0   0   1   ...
[13] 5  ola   0   0   0   ...
[14] 4  ola   0   0   0   ...
[15] 1  ola   1   0   0   ...
[16] 2  ola   0   1   0   ...
[17] 3  ola   0   0   1   ...
[18] 5  ola   0   0   0   ...
[19] 4  ola   0   0   0   ...
[20] 1  ola   1   0   0   ...
[21] 3  ola   0   0   1   ...
[22] 5  ola   0   0   0   ...
[23] 2  ola   0   1   0   ...
[24] 1  ola   1   0   0   ...
[25] 4  ola   0   0   0   ...
[26] 2  ola   0   1   0   ...

我如何动态地做到这一点?在本例中,我只有5值,但在我的示例中,我有具有45值的列,并且必须按照这里所做的那样添加列。我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-05 13:44:34

我们可以在行序列的“x”列上使用table,对原始数据集使用cbind

代码语言:javascript
运行
复制
res <- cbind(df, as.data.frame.matrix(table(seq_len(nrow(df)), df$x)))
names(res) <-  tolower(make.names(names(res)))
res
#   x   y x1 x2 x3 x4 x5
#1 1 ola  1  0  0  0  0
#2 2 ola  0  1  0  0  0
#3 3 ola  0  0  1  0  0
#4 5 ola  0  0  0  0  1
#5 4 ola  0  0  0  1  0
#6 2 ola  0  1  0  0  0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49111791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档