gpt4 book ai didi

R:dplyr::lag 在尝试滞后字符时抛出错误

转载 作者:行者123 更新时间:2023-12-04 11:18:40 27 4
gpt4 key购买 nike

当我尝试在 tibble 中的一列字符上使用滞后函数(来自 dplyr 库)时,我在 R 中遇到以下错误:

Error in mutate_impl(.data, dots) : Expecting a single string value: [type=logical; extent=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))

最佳答案

您遇到此错误是因为 dplyrtibbleNA的类型有严格要求它们允许您使用的值(或者,更具体地说,它们对检查您创建的变量的类型更加严格)。您需要 NA_character_ ,像这样:

res = tib %>%
mutate(lag_n = lag(x, n=1, default = NA_character_))

关于R:dplyr::lag 在尝试滞后字符时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51902665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com