首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对R中的所有字符串进行多个自动连接

如何对R中的所有字符串进行多个自动连接
EN

Stack Overflow用户
提问于 2022-02-16 11:44:37
回答 1查看 35关注 0票数 0

这里是mydata的例子

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
V1
dt_spring_B_3B3OS
dt_spring_B_3E3B

以上单元格具有dt_spring_B_3B3OS值,其值后必须为符号相等(=)。因此,在连接之后,我们应该有这样的模板。

代码语言:javascript
运行
复制
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)

代码语言:javascript
运行
复制
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)

任何帮助对我来说都很重要。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 11:54:08

你可以:

代码语言:javascript
运行
复制
mydata %>%
  summarize(across(everything(), ~paste0(first(.), 'vs', last(.), '=(', first(.), ',', last(.), ')')))

这意味着:

代码语言:javascript
运行
复制
    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管道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71141251

复制
相关文章

相似问题

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