一些可能导致bind_rows加密错误的原因可能是:
1.数据框中的列名称不同:如果您尝试将名称不同但列数相同的数据框添加到一起,则会收到cryptic错误。例如:
df1 <- data.frame(a = 1:3, b = 4:6) df2 <- data.frame(x = 7:9, y = 10:12)
bind_rows(df1, df2)
这会导致以下错误:
Error: Can't combine ..1$a
..2$x
在这种情况下,列名称必须相同。可以使用rename函数更改列名称以匹配。
library(dplyr) library(tidyr)
fun1 <- function() { fun2() }
fun2 <- function() { df1 <- data.frame(a = 1:3, b = 4:6) df2 <- data.frame(a = 7:9, b = 10:12)
bind_rows(df1, df2) }
fun1()
这会导致以下错误:
Error: Can't combine ..1$a
..2$a
要解决此错误,需要在函数中声明RNGscope:
library(dplyr) library(tidyr)
fun1 <- function() { fun2() }
fun2 <- function() { df1 <- data.frame(a = 1:3, b = 4:6) df2 <- data.frame(a = 7:9, b = 10:12)
dplyr::RNGkind("default") # 声明RNGscope bind_rows(df1, df2) }
fun1()
在函数内声明RNGscope时,它遵循继承规则,这意味着即使在嵌套的函数中声明RNGscope,也可以在外部函数中访问它。
3.数据类型不同:如果您使用只有一个值的列或不同数据类型的列,则可能会收到cryptic
下一篇:bind_rows重复输出的问题