【发布时间】:2020-09-08 06:29:05
【问题描述】:
考虑以下一小段 R 代码:
A = tibble(animal = 'cat',color = 'black',weight = 1000)
A[1,] <- gsub("a","e",A[1,])
我想要的是一个包含条目“cet”、“bleck”和 1000 的单行 tibble,但尝试在加载 tibble 3.0.3 的情况下运行它会出现错误:
Error: Assigned data `gsub("a", "e", A[1, ])` must be compatible with row subscript `1`.
x 1 row must be assigned.
x Assigned data has 3 rows.
ℹ Row updates require a list value. Do you need `list()` or `as.list()`?*
...我想这是有道理的,因为 gsub 会产生一个长度为 3 的字符向量。
这是我的问题:这段代码是我在公司服务器上运行的 R Shiny 应用程序的一小部分。昨天,管理员在服务器上安装了“photobiology”包后,我们的应用程序开始崩溃;深入研究代码,上面的行原来是问题的原因。所以,在安装一些新包之前,上面的代码按照我们的意图执行,在安装新包(带有依赖项)之后,我们得到了错误。重写代码不是什么大问题,但我想了解哪里出了问题,而且我对 tibbles 不太熟悉。难道这种类型的行替换在早期版本的 tibble 包中是可能的,但在最新版本中是不可能的?
【问题讨论】: