R 赋值错误时的变异和case_

R 赋值错误时的变异和case_,r,dplyr,R,Dplyr,我不能,以我的生命,找出这个代码的错误。当frameNum为1-63时,代码分配preventive,但其他所有内容分配为NA total_s2_data <- total_s2_data %>% mutate(frame_cat = case_when( frameNum == c(1:63, 120:193, 488:543, 580:625) ~ "anticipatory", frameNum == c(64:69, 194:219, 544:563, 6

我不能,以我的生命,找出这个代码的错误。当
frameNum
为1-63时,代码分配
preventive
,但其他所有内容分配为
NA

total_s2_data <- total_s2_data %>%
  mutate(frame_cat = case_when(
    frameNum == c(1:63, 120:193, 488:543, 580:625) ~ "anticipatory",
    frameNum == c(64:69, 194:219, 544:563, 626:653) ~ "phone",
    frameNum == c(70:193, 220:297, 564:625, 654:725) ~ "carryover",
    TRUE ~ NA)
  )
总数据%
突变(帧\类别=情况\当(
frameNum==c(1:63120:193488:543580:625)~“预期的”,
frameNum==c(64:69194:219544:563626:653)~“电话”,
frameNum==c(70:193220:297564:62564:725)~“结转”,
真~NA)
)
以下是能够复制的代码:

frameNum<- c(1:725)
total_s2_data <- as.data.frame(frameNum)
frameNum1<代码>=
需要替换为%中的
%,并且

二,
NA
需要替换为
NA\u字符

错误
“错误:必须是字符向量,而不是逻辑向量”
是由于第二个错误造成的

total_s2_data <- total_s2_data %>%
  mutate(frame_cat = case_when(
    frameNum %in% c(1:63, 120:193, 488:543, 580:625) ~ "anticipatory",
    frameNum %in% c(64:69, 194:219, 544:563, 626:653) ~ "phone",
    frameNum %in% c(70:193, 220:297, 564:625, 654:725) ~ "carryover",
    TRUE ~ NA_character_)
  )

 head(total_s2_data)
#   frameNum    frame_cat
#1        1 anticipatory
#2        2 anticipatory
#3        3 anticipatory
#4        4 anticipatory
#5        5 anticipatory
#6        6 anticipatory
总数据%
突变(帧\类别=情况\当(
%c中的frameNum%(1:63120:193488:543580:625)~“预期的”,
%c中的frameNum%(64:69194:219544:563626:653)~“电话”,
%c中的frameNum%(70:193220:297564:62564:725)~“结转”,
真~NA_字符)
)
总分(总数据)
#frameNum frame_cat
#1预期的
#2.预期的
#3.预期的
#4预期的
#5预期的
#6预期的

您的示例代码和数据出现错误:“错误:必须是字符向量,而不是逻辑向量”。我怀疑您希望%
中的
%不是
=
。类似于%1:3中的
1:10%
vs
1:10==1:3
也可以
NA\u字符
而不是
NA
或者为了更清楚地显示问题,比较%1:3中的
10:1%
vs
10:1==1:3