首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将所有列突变为一行(不指定每个输入列)

将所有列突变为一行(不指定每个输入列)
EN

Stack Overflow用户
提问于 2022-11-12 02:45:55
回答 2查看 41关注 0票数 1

我希望将数据突变为由",“分隔的一列。

如果我给每个输入列命名,我可以这样做,但是是否有一种无需键入每个V1...V11就可以这样做的方法?

代码语言:javascript
复制
input = mtcars
colnames(input) = c('V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11')
joined = mutate(output11, join = paste(V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11, sep = ","))
output = select(joined, join)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-12 02:51:07

几个选择-

  1. Use tidyr::unite -

代码语言:javascript
复制
tidyr::unite(input, join, dplyr::everything(), sep = ",")

#                                                       join
#Mazda RX4               21,6,160,110,3.9,2.62,16.46,0,1,4,4
#Mazda RX4 Wag          21,6,160,110,3.9,2.875,17.02,0,1,4,4
#Datsun 710            22.8,4,108,93,3.85,2.32,18.61,1,1,4,1
#Hornet 4 Drive      21.4,6,258,110,3.08,3.215,19.44,1,0,3,1
#Hornet Sportabout    18.7,8,360,175,3.15,3.44,17.02,0,0,3,2
#Valiant              18.1,6,225,105,2.76,3.46,20.22,1,0,3,1
#Duster 360           14.3,8,360,245,3.21,3.57,15.84,0,0,3,4
#Merc 240D              24.4,4,146.7,62,3.69,3.19,20,1,0,4,2
#Merc 230             22.8,4,140.8,95,3.92,3.15,22.9,1,0,4,2
#Merc 280            19.2,6,167.6,123,3.92,3.44,18.3,1,0,4,4
#...
#...

使用paste + do.call

  1. Base

代码语言:javascript
复制
input$join <- do.call(paste, c(input, sep = ","))
票数 5
EN

Stack Overflow用户

发布于 2022-11-12 07:05:42

下面是rowwisec_across的组合,以及构建一个列表:

代码语言:javascript
复制
library(dplyr)
library(tidyr)

mtcars %>% 
  rowwise() %>% 
  transmute(join = list(paste(c_across(everything()), collapse = ","))) %>% 
  unnest(join)
代码语言:javascript
复制
  join                                   
   <chr>                                  
 1 21,6,160,110,3.9,2.62,16.46,0,1,4,4    
 2 21,6,160,110,3.9,2.875,17.02,0,1,4,4   
 3 22.8,4,108,93,3.85,2.32,18.61,1,1,4,1  
 4 21.4,6,258,110,3.08,3.215,19.44,1,0,3,1
 5 18.7,8,360,175,3.15,3.44,17.02,0,0,3,2 
 6 18.1,6,225,105,2.76,3.46,20.22,1,0,3,1 
 7 14.3,8,360,245,3.21,3.57,15.84,0,0,3,4 
 8 24.4,4,146.7,62,3.69,3.19,20,1,0,4,2   
 9 22.8,4,140.8,95,3.92,3.15,22.9,1,0,4,2 
10 19.2,6,167.6,123,3.92,3.44,18.3,1,0,4,4
# ... with 22 more rows
# i Use `print(n = ...)` to see more rows
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74410037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档