【发布时间】:2019-06-23 23:12:15
【问题描述】:
我终其一生都无法弄清楚这段代码有什么问题。当frameNum 为1-63 时,代码分配anticipatory,但其他所有分配为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:725)
total_s2_data <- as.data.frame(frameNum)
【问题讨论】:
-
您的示例代码和数据给出了错误:“错误:必须是字符向量,而不是逻辑向量”。
-
我怀疑你想要
%in%而不是==。喜欢1:10 %in% 1:3与1:10 == 1:3 -
还有
NA_character_而不是NA -
或者更清楚地显示问题,比较
10:1 %in% 1:3vs10:1 == 1:3