R 复杂id变量列
我对R比较陌生,尝试创建一个新变量作为家庭作业的一部分,任何帮助都将不胜感激 我有一个如下所示的数据集:R 复杂id变量列,r,R,我对R比较陌生,尝试创建一个新变量作为家庭作业的一部分,任何帮助都将不胜感激 我有一个如下所示的数据集: State agegr 1 15-17 1 18-20 1 21-24 2 15-17 2 18-20 2 21-24 目前,我将state作为ID列,但是我想对其进行修改,使我有一个ID列,显示state和age范围,如下所示: State 1-15 1-18 1-21 2-15 2-1
State agegr
1 15-17
1 18-20
1 21-24
2 15-17
2 18-20
2 21-24
目前,我将state作为ID列,但是我想对其进行修改,使我有一个ID列,显示state和age范围,如下所示:
State
1-15
1-18
1-21
2-15
2-18
2-21
并且能够识别状态 使用您的数据:
df <- data.frame(State=c(1,1,1,2,2,2), agegr=c('15-17','18-20','21-24','15-17','18-20','21-24'), stringsAsFactors=F );
df;
## State agegr
## 1 1 15-17
## 2 1 18-20
## 3 1 21-24
## 4 2 15-17
## 5 2 18-20
## 6 2 21-24
下面是一种使用strsplit()和粘贴()的方法:
阅读并澄清您的问题发布R中的实际代码,而不仅仅是您对布局的印象。只需使用
粘贴。如果你真的不想让“agegr”的“-”后面的部分出现,你也可以使用一些gsub
。我不知道代码。。。这就是我问的原因。我对R的工作原理有一个非常基本的了解…阿南达,我该怎么做?
data.frame(State=paste(df$State,sub('^(\\d+).*','\\1',df$agegr),sep='-'));
## State
## 1 1-15
## 2 1-18
## 3 1-21
## 4 2-15
## 5 2-18
## 6 2-21
data.frame(State=paste(df$State,unlist(strsplit(df$agegr,'-'))[c(T,F)],sep='-'));
## State
## 1 1-15
## 2 1-18
## 3 1-21
## 4 2-15
## 5 2-18
## 6 2-21