Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 复杂id变量列_R - Fatal编程技术网

R 复杂id变量列

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

我对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-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