为何新创建的dataframe 'datarule' 未被找到?
问题原因与解决方案
错误的直接原因是你在创建datarule的代码末尾多了一个未闭合的管道符%>%,导致R无法完成赋值操作,datarule对象根本没被创建,所以执行head(datarule)时会提示找不到该对象。
你的代码问题点:
datarule <- data %>% mutate(block=block+1) %>% # 此处管道符无后续操作,赋值流程中断 head(datarule)
修复后的代码:
移除多余的管道符即可完成赋值:
data$test = as.logical(data$test) # 将test列转为布尔类型True/False max_learn_block <- max(data[!data$test, "block"]) data <- data %>% mutate(block=ifelse(test, max_learn_block+1, block)) datarule <- data %>% mutate(block=block+1) # 移除末尾多余的 %>% head(datarule)
另外观察原函数代码,原代码中datarule <- data %>% mutate(block=block+1) %>%的后面应该还有后续的dplyr操作(比如其他mutate、filter等),你拆分代码时只截取了这一行,导致管道符悬空。如果需要还原原函数的完整逻辑,需要补全后续的操作步骤;如果仅需当前的mutate操作,直接去掉管道符即可。
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

