【发布时间】:2019-01-24 22:13:19
【问题描述】:
当我尝试对 tibble 中的一列字符使用 lag 函数(来自 dplyr 库)时,我在 R 中遇到以下错误:
mutate_impl(.data, dots) 中的错误:期望单个字符串 值:[类型=逻辑;范围=1]。
数据框中的一列字符不会发生此错误。对于小标题或数据框中的一列数字,我也没有收到错误。
有谁知道为什么我在数据帧与小标题的滞后函数中出现这种差异?谢谢!
这里是一些重现错误的示例代码。我有延迟有效和无效的例子。我已经尝试在我的机器上更新 tidyverse 和 dplyr 库,但我仍然遇到同样的错误。
tib = data_frame(x = c('a','b','c'), y = 1:3)
# lagging column of characters in tibble throws error
res = tib %>%
mutate(lag_n = lag(x, n=1, default = NA))
# lagging column of numbers in tibble does NOT throw error
res = tib %>%
mutate(lag_c = lag(y, n=1, default = NA))
df = data.frame(x = c('a','b','c'), y = 1:3)
# lagging column of characters in data frame does NOT throw error
res = df %>%
mutate(lag_n = lag(x, n=1, default = NA))
# lagging column of numbers in data frame does NOT throw error
res = df %>%
mutate(lag_c = lag(y, n=1, default = NA))
【问题讨论】: