这里是mydata的例子
mydata=structure(list(V1 = c("dt_spring_B_3B3OS", "dt_spring_B_3E3B"
), V2 = c("dt_spring_B_3B3OS", "dt_spring_B_3OLS3B"), V3 = c("dt_spring_B_3B3OS",
"dt_spring_B_4B4E"), V4 = c("dt_spring_B_3B3OS", "dt_spring_B_4OS4E"
), V5 = c("dt_spring_B_3B3OS", "dt_spring_B_4S4OS"), V6 = c("dt_spring_B_3B3OS",
"dt_spring_B_OLS"), V7 = c("dt_spring_B_3B3OS", "dt_spring_b_os"
), V8 = c("dt_spring_B_3B3OS", "dt_spring_E_3E3B"), V9 = c("dt_spring_B_3B3OS",
"dt_spring_E_3E3C"), V10 = c("dt_spring_B_3B3OS", "dt_spring_E_3C3OC"
), V11 = c("dt_spring_B_3B3OS", "dt_spring_E_4E4B"), V12 = c("dt_spring_B_3B3OS",
"dt_spring_E_4S4B"), V13 = c("dt_spring_B_3B3OS", "dt_spring_E_5E5B"
), V14 = c("dt_spring_B_3B3OS", "dt_spring_E_5S5B"), V15 = c("dt_spring_B_3B3OS",
"dt_spring_E_C")), class = "data.frame", row.names = c(NA, -2L
))
我需要以这样的方式连接字符串值,上面的单元格的值应该始终在它们前面有“相等”的符号。更清楚地知道我需要什么。以这个例子为例。第一列V1
V1
dt_spring_B_3B3OS
dt_spring_B_3E3B
以上单元格具有dt_spring_B_3B3OS
值,其值后必须为符号相等(=)。因此,在连接之后,我们应该有这样的模板。
dt_spring_B_3B3OSvsdt_spring_B_3E3B=(dt_spring_B_3B3OS,dt_spring_B_3E3B).
如果说简单的话,那么连接模式就是excel中的values of the upper cell + vs + value of the lower cell and = .
--这很容易做到。=CONCATENATE(A2;"vs";A3;"=";"(";A2;",";A3;")")
,但问题是如何同时对数据集中的所有列进行这种连接?在这个可重复的例子中,想要的结果应该是这样的。(通过excel获得,但我需要通过R)
dt_spring_B_3B3OSvsdt_spring_B_3E3B=(dt_spring_B_3B3OS,dt_spring_B_3E3B)
dt_spring_B_3B3OSvsdt_spring_B_3OLS3B=(dt_spring_B_3B3OS,dt_spring_B_3OLS3B)
dt_spring_B_3B3OSvsdt_spring_B_4B4E=(dt_spring_B_3B3OS,dt_spring_B_4B4E)
dt_spring_B_3B3OSvsdt_spring_B_4OS4E=(dt_spring_B_3B3OS,dt_spring_B_4OS4E)
dt_spring_B_3B3OSvsdt_spring_B_4S4OS=(dt_spring_B_3B3OS,dt_spring_B_4S4OS)
dt_spring_B_3B3OSvsdt_spring_B_OLS=(dt_spring_B_3B3OS,dt_spring_B_OLS)
dt_spring_B_3B3OSvsdt_spring_b_os=(dt_spring_B_3B3OS,dt_spring_b_os)
dt_spring_B_3B3OSvsdt_spring_E_3E3B=(dt_spring_B_3B3OS,dt_spring_E_3E3B)
dt_spring_B_3B3OSvsdt_spring_E_3E3C=(dt_spring_B_3B3OS,dt_spring_E_3E3C)
dt_spring_B_3B3OSvsdt_spring_E_3C3OC=(dt_spring_B_3B3OS,dt_spring_E_3C3OC)
dt_spring_B_3B3OSvsdt_spring_E_4E4B=(dt_spring_B_3B3OS,dt_spring_E_4E4B)
dt_spring_B_3B3OSvsdt_spring_E_4S4B=(dt_spring_B_3B3OS,dt_spring_E_4S4B)
dt_spring_B_3B3OSvsdt_spring_E_5E5B=(dt_spring_B_3B3OS,dt_spring_E_5E5B)
dt_spring_B_3B3OSvsdt_spring_E_5S5B=(dt_spring_B_3B3OS,dt_spring_E_5S5B)
dt_spring_B_3B3OSvsdt_spring_E_C=(dt_spring_B_3B3OS,dt_spring_E_C)
任何帮助对我来说都很重要。谢谢
发布于 2022-02-16 03:54:08
你可以:
mydata %>%
summarize(across(everything(), ~paste0(first(.), 'vs', last(.), '=(', first(.), ',', last(.), ')')))
这意味着:
V1
1 dt_spring_B_3B3OSvsdt_spring_B_3E3B=(dt_spring_B_3B3OS,dt_spring_B_3E3B)
V2
1 dt_spring_B_3B3OSvsdt_spring_B_3OLS3B=(dt_spring_B_3B3OS,dt_spring_B_3OLS3B)
V3
1 dt_spring_B_3B3OSvsdt_spring_B_4B4E=(dt_spring_B_3B3OS,dt_spring_B_4B4E)
V4
1 dt_spring_B_3B3OSvsdt_spring_B_4OS4E=(dt_spring_B_3B3OS,dt_spring_B_4OS4E)
V5
1 dt_spring_B_3B3OSvsdt_spring_B_4S4OS=(dt_spring_B_3B3OS,dt_spring_B_4S4OS)
V6
1 dt_spring_B_3B3OSvsdt_spring_B_OLS=(dt_spring_B_3B3OS,dt_spring_B_OLS)
V7
1 dt_spring_B_3B3OSvsdt_spring_b_os=(dt_spring_B_3B3OS,dt_spring_b_os)
V8
1 dt_spring_B_3B3OSvsdt_spring_E_3E3B=(dt_spring_B_3B3OS,dt_spring_E_3E3B)
V9
1 dt_spring_B_3B3OSvsdt_spring_E_3E3C=(dt_spring_B_3B3OS,dt_spring_E_3E3C)
V10
1 dt_spring_B_3B3OSvsdt_spring_E_3C3OC=(dt_spring_B_3B3OS,dt_spring_E_3C3OC)
V11
1 dt_spring_B_3B3OSvsdt_spring_E_4E4B=(dt_spring_B_3B3OS,dt_spring_E_4E4B)
V12
1 dt_spring_B_3B3OSvsdt_spring_E_4S4B=(dt_spring_B_3B3OS,dt_spring_E_4S4B)
V13
1 dt_spring_B_3B3OSvsdt_spring_E_5E5B=(dt_spring_B_3B3OS,dt_spring_E_5E5B)
V14
1 dt_spring_B_3B3OSvsdt_spring_E_5S5B=(dt_spring_B_3B3OS,dt_spring_E_5S5B)
V15
1 dt_spring_B_3B3OSvsdt_spring_E_C=(dt_spring_B_3B3OS,dt_spring_E_C)
如果您只想要一个字符向量,那么在代码的末尾添加一个unlist
管道。
https://stackoverflow.com/questions/71141251
复制