【问题标题】:unite function in tidyr package doesn't worktidyr 包中的联合功能不起作用
【发布时间】:2019-08-03 20:49:17
【问题描述】:

我正在尝试处理一些字符。

代码如下所示:

library(tidyr)
unite(data ,sep="%in% ")

这里data是一个数据框,看起来像这样:

   A      B
1  Var   'Y'

我可以在R 3.4.4下成功运行。

1 Var%in% 'Y'

但在 R 3.5.1 中,它会告诉我错误:

Error in is_string(expr) : argument "expr" is missing, with no default 

如何解决这个问题?

很抱歉之前没有说明问题。我现在已经弄清楚问题所在了。

【问题讨论】:

  • 你有三行 toString - 哪一行?
  • 在 RStudio 中使用 R 3.5.1 编织时没有看到此错误。
  • 只在编织时才会出现吗?你能在命令行上实现它吗?它仅在写入文件时发生吗?是cat 吗?回溯是什么样的?
  • @Spacedman 当我在命令行运行它时也会发生这种情况。
  • 请编辑标题以反映这不是 R 版本的问题,而是tidyr 包版本的问题。这适用于 v 0.8.1,但在 R 3.4.4 中使用 0.8.3 失败

标签: r string tidyr


【解决方案1】:

您需要为新列指定一个名称,例如

unite(data, "newcol", sep = "%in%")

如果您使用管道,这似乎可以在没有 3 个参数的情况下工作,例如

data %>% unite("newcol", sep = "%in%")

但管道运算符实际上只是隐藏了data 是第一个参数的事实。

编辑添加:您的原始表单在tidyr 0.8.1 版中确实有效(正如@Spacedman 所指出的那样),但它产生的数据框无效。之后的某个时间修复了这个错误。

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 2020-11-24
    • 2018-03-20
    • 1970-01-01
    • 2013-03-30
    • 2020-08-24
    • 2018-02-04
    • 2019-12-05
    相关资源
    最近更新 更多