我想将一个tibble中的所有列合并为一个以便以后处理。每当我尝试这样做时,我都会收到错误
if(!after)c(values,x)中的错误否则if(在&gt; = lengx之后)c(x,values)else c(x [1L:after],:缺少值,其中需要TRUE / FALSE < / p>
tidyr:unite documentation表示您可以通过不指定任何列来执行此操作。这是一个玩具示例:
ex <- as_tibble(matrix(rnorm(20), ncol = 4))
ex
unite(ex, 'new')
我只是错过了一些整洁的微妙或......?
答案 0 :(得分:2)
所以,我相信你需要指定列,即使你想要组合所有列。
要做到这一点,你可以使用1:x,其中x是最后一个列号,你不需要全部写出来。例如,在您的代码中,您可以输入:
unite(ex, new, 1:4, sep="")
请记住将sep =参数放入 - sep =&#34;&#34;意味着它们会在没有间隙的情况下连接在一起,但是sep =&#34;。&#34;意味着两者之间会有一个点。
希望仍然有用!
编辑:为了更容易使用列号而不是名称,您可以使用ncol()来查找要指定的列数,例如ncol(ex)在您的示例中返回4.
答案 1 :(得分:2)
怎么样
df <- ex %>%
unite(ex,1:ncol(ex),sep=" ")