Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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 联合返回错误';没有适用于'的方法;联合';适用于“类”的对象;c(';双精度';,';数字';)”;_R - Fatal编程技术网

R 联合返回错误';没有适用于'的方法;联合';适用于“类”的对象;c(';双精度';,';数字';)”;

R 联合返回错误';没有适用于'的方法;联合';适用于“类”的对象;c(';双精度';,';数字';)”;,r,R,我的数据集如下所示: p = c(3, 4, 5, 6, 7) q = c("fr", "", "fr", "fe", "fre") b = c(1, "", 1, "", 1) a = c("r", "f", "b", "m", "p") df=data.frame(p, q, b, a) 我想将q、b和a合并,并将结果放入一个新列中,因此我使用unite: new_df <- df %>% mutate(Merged = unite(q,b,a), sep = "_")

我的数据集如下所示:

p = c(3, 4, 5, 6, 7)
q = c("fr", "", "fr", "fe", "fre")
b = c(1, "", 1, "", 1)
a = c("r", "f", "b", "m", "p")

df=data.frame(p, q, b, a)
我想将q、b和a合并,并将结果放入一个新列中,因此我使用unite:

new_df <- df %>% 
  mutate(Merged = unite(q,b,a), sep = "_")
new_df%
突变(合并=联合(q,b,a),sep=“389;”)
我得到这个错误:

UseMethod(“联合”)中出错:
没有适用于“c”('double','numeric')类对象的“unite_uu2;”方法


另外,与上面的问题无关,我如何在代码中指定列的范围,这样我就不必手动输入所有列(我想合并几十列)。我可以为q到a列写
q:a
?我在粘贴函数中尝试过这种语法,但没有成功。

我们在
mutate
之外使用
unite

library(dplyr)
library(tidyr)

df %>% 
     unite(Merged, q, b, a, sep= "_")
unite
的用法是

unite(数据,列,…,sep=“”,remove=TRUE,na.rm=FALSE)

在哪里

col
-新列的名称,作为字符串或符号


或者另一个选项是使用
stru c

library(stringr)

df %>%
    transmute(p, Merged = str_c(q, b, a, sep="_"))

注意,我也尝试添加as.character。错误是相同的。这就是您如何指定要合并的列的范围:
df%>%unite(Merged,q:a,sep=“\u”)
@sm925非常感谢,它成功了