如何粘贴两个带引号的字符串?

问题描述 投票:0回答:2

假设我在数据框中有两列,第一列显示项目代码;虽然第二个显示描述,但我想构建第三个连接前两列并以诸如“1”=“soap”的格式显示第一行,依此类推。是否可以?提前致谢

我尝试过类似 c(""abc"", ""def"") 和该格式的不同变体,都没有用。

r string paste
2个回答
0
投票

我们可以在

sprintf
中使用
Reduce

res <- Reduce(\(x, y) sprintf('"%s"="%s"', x, y), dat[c(1, 2)])
res
# [1] "\"1\"=\"a\"" "\"2\"=\"b\"" "\"3\"=\"c\"" "\"4\"=\"d\"" "\"5\"=\"e\"" "\"6\"=\"f\""

看起来很奇怪,但只是因为显示了内部存储方法。看看我们

cat
它:

cat(res)
# "1"="a" "2"="b" "3"="c" "4"="d" "5"="e" "6"="f"

资料:

dat <- data.frame(a=1:6, b=letters[1:6], x=runif(6))

0
投票
transform(dat, x=sprintf('"%s"="%s"', a, b))
  a b       x
1 1 a "1"="a"
2 2 b "2"="b"
3 3 c "3"="c"
4 4 d "4"="d"
5 5 e "5"="e"
6 6 f "6"="f"

transform(dat, x = paste(shQuote(a), shQuote(b), sep='='))
  a b       x
1 1 a "1"="a"
2 2 b "2"="b"
3 3 c "3"="c"
4 4 d "4"="d"
5 5 e "5"="e"
6 6 f "6"="f"
© www.soinside.com 2019 - 2024. All rights reserved.