Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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中两个位置之外的列的值_R - Fatal编程技术网

如何检索R中两个位置之外的列的值

如何检索R中两个位置之外的列的值,r,R,我正在处理来自Nexis的一个超级混乱的数据集(我有一堆文章、标题、日期、作者等): 我想统计一下每年(1995-2015年)每月发表多少篇文章,尽管数据的标题显示该月出现在专栏中,但情况并非总是如此。然而,我注意到,一年总是在一个月的右边出现两列(同一行)。所以我想开发一个代码,找出有多少文章来自1995年11月,1995年2月。。。。。。2015年10月。有人能接受挑战吗 问候 PS:在下图中,可以更好地看到数据: 由于您没有提供有效的示例,我创建了一个示例,希望我的代码也能对您的数据起作用

我正在处理来自Nexis的一个超级混乱的数据集(我有一堆文章、标题、日期、作者等):

我想统计一下每年(1995-2015年)每月发表多少篇文章,尽管数据的标题显示该月出现在专栏中,但情况并非总是如此。然而,我注意到,一年总是在一个月的右边出现两列(同一行)。所以我想开发一个代码,找出有多少文章来自1995年11月,1995年2月。。。。。。2015年10月。有人能接受挑战吗

问候

PS:在下图中,可以更好地看到数据:


由于您没有提供有效的示例,我创建了一个示例,希望我的代码也能对您的数据起作用

# build example
d <- data.frame(a=c(month.name[1:3],month.name[1]),b=c(letters[1:4]),c=c(70,99,15,14))
d <- apply(d, 2, as.character)
d
#构建示例

d提供一个原始数据集,这一个看起来被R误读了。我刚刚以更清晰的方式更新了数据这里有一些提示如何提供一个好的工作示例:Hi Jimbou,非常感谢你的回答。你给了一个非常详细和很好的解释。只有一件事,在每年一个月的分类中,当你的metion lenght(gr)>0时,gr是什么?我刚刚编辑了代码。它必须是行向量。
# build example
d <- data.frame(a=c(month.name[1:3],month.name[1]),b=c(letters[1:4]),c=c(70,99,15,14))
d <- apply(d, 2, as.character)
d
# Loop 
result <- NULL
for( i in 1:ncol(d)){
 # get row ids including one of the 12 months
 row <- grep(paste(month.name,collapse = "|"),d[,i])
 # month per year
  if( length(row) > 0 ){
  col=i # Column
  mpy <- paste(d[row,i],d[row,i+2],sep = "_") 
  tmp <- data.frame(col,row,mpy,row.names = NULL)
  result <- rbind(result,tmp)}
 }
table(result$mpy)