我是R的新手,并尝试创建一个新的变量作为家庭作业的一部分,任何帮助将不胜感激!
我有一个如下所示的数据集:
State agegr
1 15-17
1 18-20
1 21-24
2 15-17
2 18-20
2 21-24
目前我已将状态作为ID列,但是我想修改它以便我有一个显示状态和年龄范围的ID列,如下所示:
State
1-15
1-18
1-21
2-15
2-18
2-21
并能够识别状态。
答案 0 :(得分:1)
使用您的数据:
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
以下是使用sub()
和paste()
的方法:
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
以下是使用strsplit()
和paste()
的方法:
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