Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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,我的数据如下所示: 可以使用以下代码创建示例数据: Name<-c("form:ID","dave","mike","marry","rose","","Form:ID","mood","happy","sad","angry","","Fo

我的数据如下所示:

可以使用以下代码创建示例数据:

Name<-c("form:ID","dave","mike","marry","rose","","Form:ID","mood","happy","sad","angry","","Form:ID","dave","mike","marry","rose")
Sample.data <- data.frame( Name,stringsAsFactors = F) 

Name这里有一个带有
cumsum
的选项,用于根据“Name”列中的子字符串“ID”创建“page”,然后按该“page”分组,
如果“Name”的第二个元素是“mood”,则标记为“Y”或
否则为“N”

library(dplyr)
library(stringr)
Sample.data %>% 
   group_by(page = cumsum(str_detect(Name, '(?i)form:ID'))) %>% 
   mutate(Keep = if(Name[2] == 'mood') 'Y' else 'N') %>%
   ungroup %>%
   mutate(across(c(Keep, page), ~ replace(.,  Name == "", "")))
-输出

# A tibble: 17 x 3
#   Name      page  Keep 
#   <chr>     <chr> <chr>
# 1 "form:ID" "1"   "N"  
# 2 "dave"    "1"   "N"  
# 3 "mike"    "1"   "N"  
# 4 "marry"   "1"   "N"  
# 5 "rose"    "1"   "N"  
# 6 ""        ""    ""   
# 7 "Form:ID" "2"   "Y"  
# 8 "mood"    "2"   "Y"  
# 9 "happy"   "2"   "Y"  
#10 "sad"     "2"   "Y"  
#11 "angry"   "2"   "Y"  
#12 ""        ""    ""   
#13 "Form:ID" "3"   "N"  
#14 "dave"    "3"   "N"  
#15 "mike"    "3"   "N"  
#16 "marry"   "3"   "N"  
#17 "rose"    "3"   "N"  
#一个tible:17 x 3
#姓名页保留
#         
#1“表格:ID”“1”“N”
#2“dave”1“N”
#3“麦克”1“N”
#4“结婚”1“N”
#5“玫瑰色”1“N”
# 6 ""        ""    ""   
#7英寸表格:ID“2”Y
#8“语气”“2”“Y”
#9“快乐”2“Y”
#10“悲伤的”2“Y”
#11“愤怒的”2“Y”
#12 ""        ""    ""   
#13“表格:ID”“3”“N”
#14“dave”“3”“N”
#15“麦克”“3”“N”
#16“结婚”3“N”
#17“玫瑰色”“3”“N”

您需要指定我们可以期望的规律性程度。记录中的行数是否总是相同的?记录的第一行有多少变化。您是否希望冒号后面的文本以类似“Form:ID”的行显示?