R 基于列值的字符串连接

R 基于列值的字符串连接,r,string,concatenation,R,String,Concatenation,如何基于column num的值创建新的列desc 这是我的原始数据集。a、 b、c、d、e和f是行名 这是我正在寻找的输出。注意,desc由num列的行名组成。num 2的行名是b和d;因此num 2的desc是Var:b,d。num 3的行名是c、e、f;因此,num 3的desc是Var:c,e,f 下面是创建数据集的代码 df <- data.frame(num=c(1, 2, 3, 4, 3, 3)) rownames(df) <- c("a", "b", "c", "d"

如何基于column num的值创建新的列desc

这是我的原始数据集。a、 b、c、d、e和f是行名

这是我正在寻找的输出。注意,desc由num列的行名组成。num 2的行名是b和d;因此num 2的desc是Var:b,d。num 3的行名是c、e、f;因此,num 3的desc是Var:c,e,f

下面是创建数据集的代码

df <- data.frame(num=c(1, 2, 3, 4, 3, 3))
rownames(df) <- c("a", "b", "c", "d", "e", "f")

我们从row names row names_到_column创建一个列,按'num'分组,通过粘贴row names列'rn'的元素来创建'desc'

library(tidyverse)
df %>% 
  rownames_to_column('rn') %>% 
  group_by(num) %>% 
  transmute(desc = paste0('var: ', toString(rn)))
# A tibble: 6 x 2
# Groups:   num [3]
#    num desc        
#  <dbl> <chr>       
#1     1 var: a      
#2     2 var: b, d   
#3     3 var: c, e, f
#4     2 var: b, d   
#5     3 var: c, e, f
#6     3 var: c, e, f
数据
我们从row names row names_到_column创建一个列,按'num'分组,通过粘贴row names列'rn'的元素来创建'desc'

library(tidyverse)
df %>% 
  rownames_to_column('rn') %>% 
  group_by(num) %>% 
  transmute(desc = paste0('var: ', toString(rn)))
# A tibble: 6 x 2
# Groups:   num [3]
#    num desc        
#  <dbl> <chr>       
#1     1 var: a      
#2     2 var: b, d   
#3     3 var: c, e, f
#4     2 var: b, d   
#5     3 var: c, e, f
#6     3 var: c, e, f
数据
transform(df, desc = ave(row.names(df), df$num, FUN = function(x) toString(x)))
#  num    desc
#a   1       a
#b   2       b
#c   3 c, e, f
#d   4       d
#e   3 c, e, f
#f   3 c, e, f