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非常感谢,它成功了