首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从现有字符和数字列的组合中创建新列?

如何从现有字符和数字列的组合中创建新列?
EN

Stack Overflow用户
提问于 2016-07-04 03:43:46
回答 2查看 78关注 0票数 0

我的数据结构如下:

代码语言:javascript
复制
 Name   Drill Movement Repetition    DV    
1 RUTH 90_Turn   Sprint          1   10   
2 RUTH 90_Turn   Sprint          1   12   
2 RUTH 90_Turn   Sprint          2   12   
2 RUTH 90_Turn   Sprint          2   9    
3 RUTH 90_Turn   Sprint          3   14   
3 RUTH 90_Turn   Sprint          3   12    
4 RUTH 90_Turn   Walk            1   13  
4 RUTH 90_Turn   Walk            1   17   
5 RUTH 90_Turn   Walk            2   11   
5 RUTH 90_Turn   Walk            2   15      

我想在列Trial中添加一个包含MovementRepetition的每个唯一组合的代码,例如:

代码语言:javascript
复制
 Name   Drill Movement Repetition    DV     Trial
1 RUTH 90_Turn   Sprint          1   10   D90_Sprint1
2 RUTH 90_Turn   Sprint          1   12   D90_Sprint1
2 RUTH 90_Turn   Sprint          2   12   D90_Sprint2 
2 RUTH 90_Turn   Sprint          2   9    D90_Sprint2 
3 RUTH 90_Turn   Sprint          3   14   D90_Sprint3 
3 RUTH 90_Turn   Sprint          3   12   D90_Sprint3 
4 RUTH 90_Turn   Walk            1   13   D90_Walk1 
4 RUTH 90_Turn   Walk            1   17   D90_Walk1 
5 RUTH 90_Turn   Walk            2   11   D90_Walk2
5 RUTH 90_Turn   Walk            2   15   D90_Walk2

这考虑到了Drill,它与Name一样保持不变-- data.frame仅由露丝的数据组成。DVMovementRepetition至少测量两次。

有可能这样做吗?

我的数据帧是10140个。因此,一个快速的解决方案将是理想的。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-04 03:48:50

我们可以使用paste

代码语言:javascript
复制
df1$Trial <- paste0("D90_", df1$Movement, df1$Repetition)

如果“90”来自“钻”一栏

代码语言:javascript
复制
df1$Trial <- paste0("D", sub("_.*", "", df1$Drill), "_", df1$Movement, df1$Repetition)

或使用sprintf

代码语言:javascript
复制
sprintf("D%s_%s%d", sub("_.*", "", df1$Drill), df1$Movement, df1$Repetition)
#[1] "D90_Sprint1" "D90_Sprint1" "D90_Sprint2" "D90_Sprint2" "D90_Sprint3" "D90_Sprint3" "D90_Walk1"   "D90_Walk1"   "D90_Walk2"  
#[10] "D90_Walk2" 
票数 1
EN

Stack Overflow用户

发布于 2016-07-04 03:49:16

使用paste0()

代码语言:javascript
复制
df$Trial <- paste0(sub("_.*", "", df$Drill),
                   "_",
                   df$Movement,
                   df$Repetition)

sub()的调用提取最终Trial字符串的Drill组件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38176658

复制
相关文章

相似问题

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