tidyr包中的unite函数不';行不通

tidyr包中的unite函数不';行不通,r,string,tidyr,R,String,Tidyr,我正在尝试处理一些角色 代码如下所示: library(tidyr) unite(data ,sep="%in% ") 这里的data是一个数据框,看起来如下: A B 1 Var 'Y' 我可以在R3.4.4下成功运行它 1 Var%in% 'Y' 但在R3.5.1中,它会告诉我错误: Error in is_string(expr) : argument "expr" is missing, with no default 如何解决这个问题 很抱歉,之前没有指

我正在尝试处理一些角色

代码如下所示:

library(tidyr)
unite(data ,sep="%in% ")
这里的
data
是一个数据框,看起来如下:

   A      B
1  Var   'Y'
我可以在R3.4.4下成功运行它

1 Var%in% 'Y'
但在R3.5.1中,它会告诉我错误:

Error in is_string(expr) : argument "expr" is missing, with no default 
如何解决这个问题


很抱歉,之前没有指定问题。我现在已经找到了问题所在。

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

unite(data, "newcol", sep = "%in%")
如果您使用管道,则在没有3个参数的情况下,这似乎是可行的,例如

data %>% unite("newcol", sep = "%in%")
但是管道操作符实际上只是隐藏了一个事实,
data
是第一个参数


编辑以添加:您的原始表单在
tidyr
0.8.1版中工作(正如@Spacedman所指出的),但它生成的数据帧无效。此错误在此之后某个时候被修复。

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

unite(data, "newcol", sep = "%in%")
如果您使用管道,则在没有3个参数的情况下,这似乎是可行的,例如

data %>% unite("newcol", sep = "%in%")
但是管道操作符实际上只是隐藏了一个事实,
data
是第一个参数


编辑以添加:您的原始表单在
tidyr
0.8.1版中工作(正如@Spacedman所指出的),但它生成的数据帧无效。这个错误在那之后的某个时候被修复。

你有三行
toString
-哪一行?我在R3.5.1的RStudio中编织时没有看到这个错误。它只在编织时发生吗?你能在命令行上实现吗?它是否仅在写入文件时发生?是不是
cat
?回溯看起来像什么?@Spacedman在命令行运行时也会发生这种情况。请编辑标题以反映这不是R版本的问题,而是tidyr程序包的问题。这适用于V0.8.1,但适用于R3.4.4中的0.8.3时失败您有三行
toString
-哪一行?我在R3.5.1的RStudio中编织时没有看到此错误。它是否仅在编织时发生?你能在命令行上实现吗?它是否仅在写入文件时发生?是不是
cat
?回溯看起来像什么?@Spacedman在命令行运行时也会发生这种情况。请编辑标题以反映这不是R版本的问题,而是tidyr程序包的问题。这适用于V0.8.1,但不适用于R3.4.4中的0.8.3