我在一个数据框中有一组列,我想将它们粘贴在一起(以"-"分隔),如下所示:

data <- data.frame('a' = 1:3, 
                   'b' = c('a','b','c'), 
                   'c' = c('d', 'e', 'f'), 
                   'd' = c('g', 'h', 'i'))
i.e.     
     a   b   c  d  
     1   a   d   g  
     2   b   e   h  
     3   c   f   i  

我想成为:

a x  
1 a-d-g  
2 b-e-h  
3 c-f-i  

我通常可以这样做:

within(data, x <- paste(b,c,d,sep='-'))

然后删除旧列,但不幸的是,我不知props 体列的名称,只知道所有列的集合名称,例如,我知道cols <- c('b','c','d')

有人知道怎么做吗?

推荐答案

# your starting data..
data <- data.frame('a' = 1:3, 'b' = c('a','b','c'), 'c' = c('d', 'e', 'f'), 'd' = c('g', 'h', 'i')) 

# columns to paste together
cols <- c( 'b' , 'c' , 'd' )

# create a new column `x` with the three columns collapsed together
data$x <- apply( data[ , cols ] , 1 , paste , collapse = "-" )

# remove the unnecessary columns
data <- data[ , !( names( data ) %in% cols ) ]

R相关问答推荐

使用ggcorrplot删除值,但保留不重要相关性的 colored颜色

R根据名称的载体对收件箱列采取行动

收件箱摘要表布局在第一列上显示子类别

R kableExtra在插入水平线时添加额外的空白行

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

使用ggplot 2根据R中的类别排列Likert比例gplot

在(g)子中使用asserable字符

r—绘制相交曲线

如何在xyplot中 for each 面板打印R^2

从R导出全局环境中的所有sf(numrames)对象

如果某些列全部为NA,则更改列

如何得到每四个元素向量R?

如何同时从多个列表中获取名字?

如何读取CSV的特定列时,给定标题作为向量

SHINY:使用JS函数应用的CSS样式显示HTML表格

如何根据数据帧中的值从该数据帧中提取值?

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

R中的类别比较

为什么这个表格格罗布不打印?

R将函数参数传递给ggploy