Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免R包中的重塑/重塑2 melt.data.frame冲突_R_Reshape2 - Fatal编程技术网

如何避免R包中的重塑/重塑2 melt.data.frame冲突

如何避免R包中的重塑/重塑2 melt.data.frame冲突,r,reshape2,R,Reshape2,我在一个包中使用reforme2中的melt.data.frame。由于我无法控制的原因,我让用户加载我的包(导入restrape2)…然后加载restrape2包,导致我的包将来出错(官方警告…我的代码输出不正确) 我看到过这样的讨论: 所以我知道我可以使用reforme2:::melt.data.frame来防止冲突,但这会在检查时产生一个我宁愿避免的注释。tidyr中的gather函数也无法解决此问题。下面是一个可复制的示例: library(reshape2) df <- dat

我在一个包中使用
reforme2
中的
melt.data.frame
。由于我无法控制的原因,我让用户加载我的包(导入
restrape2
)…然后加载
restrape2
包,导致我的包将来出错(官方警告…我的代码输出不正确)

我看到过这样的讨论:

所以我知道我可以使用
reforme2:::melt.data.frame
来防止冲突,但这会在检查时产生一个我宁愿避免的注释。
tidyr
中的
gather
函数也无法解决此问题。下面是一个可复制的示例:

library(reshape2)
df <- data.frame(x=rep("a",4),
                 y=c(1:3,NA),
                 key=c("g","g","c","d"),
                 stringsAsFactors = FALSE)

melt(df,id.vars = "key")

library(reshape)
melt(df,id.vars = "key")
reshape2::melt(df,id.vars = "key")
reshape2:::melt.data.frame(df,id.vars = "key") #No problem
reshape2::melt(df, measure.vars =  c("x","y"), 
               variable.name = "variable", 
               value.name = "value", na.rm = FALSE)

library(tidyr)
gather(df, variable, value, -key)
gather_(df, "variable", "value", c("x","y"))
library(重塑2)
df