r-如何用逗号组合一行中的值

  • 本文关键字:合一 组合 何用逗 r rbind
  • 更新时间 :
  • 英文 :


我想知道,如何用逗号分隔符在R中组合数据帧/列表中的列。下面是示例数据集。

Name Red Blue Green 
Jack 4   5     3
John 5   6     4
Gen  3   7     1
Pra  4   6     2

预期为:

Name Colors
Jack 4,5,3
John 5,6,4
Gen  3,7,1
Pra  4,6,2

请立即提供帮助。

提前感谢

我们可以将pastedo.call一起使用。注意,即使paste有100列,下面的代码也会自动执行,而不必痛苦地提及paste(df1$Red, df1$blue, df1$Green, df1$Orange, etc..., sep=",")等。

newdf1 <- cbind(df1[1], Colors=do.call(paste, c(df1[-1], sep=",")))
newdf1
#  Name Colors
#1 Jack  4,5,3
#2 John  5,6,4
#3  Gen  3,7,1
#4  Pra  4,6,2

sprintf 的类似选项

cbind(df1[1], Colors=do.call(sprintf, c(df1[-1], list(fmt="%d,%d,%d"))))

或使用tidyr 中的unite

library(dplyr)
library(tidyr)
df1 %>% 
    unite(Colors, Red:Green, sep=",")
#   Name Colors
#1 Jack  4,5,3
#2 John  5,6,4
#3  Gen  3,7,1
#4  Pra  4,6,2

我建议使用带有","分隔符的粘贴函数

df$Colors<-paste(df$Red, df$Blue, df$Green, sep =",")

您可以通过使用tidyr包中的unite函数来实现这一点:

tidyr::unite(df_test, Color, -Name, sep = ', ')

数据:

structure(list(Name = c("Jack", "John", "Gen", "Pra"), 
               Red = c(4L, 5L, 3L, 4L),
               Blue = c(5L, 6L, 7L, 6L),
               Green = c(3L, 4L, 1L, 2L)),
          class = "data.frame", 
          row.names = c(NA, -4L)) -> df_test

我会将数据复制到excel中,添加一个带值的列,并添加一个formulas=A1&D1&B1&D1&C1

A、 B,C是列,D是逗号

相关内容

  • 没有找到相关文章

最新更新