提问人:peter 提问时间:10/26/2023 更新时间:10/26/2023 访问量:54
为什么找不到新的数据帧?
Why the is the new dataframe not found?
问:
我正在尝试从某人的研究中重现代码。到目前为止,我只是试图分解将日期重塑为单个部分的功能,以了解它到底做了什么。尝试基于原始“data”创建名为“datarule”的新数据帧时,出现“错误:找不到对象'datarule'”。这是怎么回事?可能是一件微不足道的事情,但非常感谢您的帮助。
这是我的 R 代码:
data$test = as.logical(data$test) #convert 'test' col to boolean type 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)
以下是原始函数代码:
if (combine_test) {
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) %>%
提前致谢!
答:
0赞
cnolte
10/26/2023
#1
嗯,这取决于你在做什么。
试着只做
datarule <- data %>%
mutate(block=block+1)
head(datarule)
问题很可能是您在创建它之前就引用了它。似乎还有一个无处可去的悬管操作员()。在上面的代码中,您首先通过 mutating 创建,然后第二行打印出前六行datarule
%>%
datarule
data
评论
0赞
peter
10/26/2023
感谢您的帮助,我是新手,所以我仍在学习语法。“datarule <-data”不是创建了数据规则结构,以便我可以在那之后引用它吗?如果不是,那是什么?当我要添加代码以进一步修改数据规则数据帧时,如何将其保存到 csv 文件以查看修改状态?
0赞
user2554330
10/26/2023
@jpsmith:评论太长了,不可能在评论中放多行代码。
0赞
user2554330
10/26/2023
@peter:否,代码中求值的表达式是 。在创建之前对整个事物进行评估。除非它不能,因为它使用 ,而 尚不存在。data %>% mutate(block=block+1) %>% head(datarule)
datarule
datarule
4赞
user2554330
10/26/2023
#2
代码末尾的行是
datarule <- data %>%
mutate(block=block+1) %>%
head(datarule)
由于第二行以管道运算符结尾,最后一行被视为整个表达式的一部分。但尚未创建,因此您会看到错误。%>%
datarule
要解决此问题,只需将管道留在第 2 行的末端即可。%>%
上一个:操作嵌套 DF 和列表中的数据
评论