Strings-通過(guò)變量創(chuàng)建字符串

問(wèn)題

你想要通過(guò)變量創(chuàng)建一個(gè)字符串奋隶。

方案

兩種從變量創(chuàng)建字符串的通用方法是使用paste()sprintf()函數(shù)。對(duì)向量來(lái)說(shuō)赡若,paste更加有用达布;sprintf則常用于對(duì)輸出實(shí)現(xiàn)精確的控制团甲。

使用paste()

a <- "apple"
b <- "banana"

# 將a,b變量?jī)?nèi)容連到一起逾冬,并用空格隔開(kāi)
paste(a, b)
#> [1] "apple banana"

# 如果不想要空格,可以設(shè)定參數(shù)sep="",或使用函數(shù) paste0():
paste(a, b, sep="")
#> [1] "applebanana"
paste0(a, b)
#> [1] "applebanana"

# 用逗號(hào)加空格分開(kāi):
paste(a, b, sep=", ")
#> [1] "apple, banana"


# 設(shè)定一個(gè)字符向量
d <- c("fig", "grapefruit", "honeydew")

# 如果輸入是一個(gè)向量躺苦,輸出會(huì)將其每個(gè)元素堆疊到一起:
paste(d, collapse=", ")
#> [1] "fig, grapefruit, honeydew"

# 如果輸入是一個(gè)標(biāo)量和一個(gè)向量身腻, 結(jié)果會(huì)將標(biāo)量與向量里每個(gè)元素放到一起
# 并返回一個(gè)向量(這是R向量化操作的循環(huán)對(duì)齊原則):
paste(a, d)
#> [1] "apple fig"        "apple grapefruit" "apple honeydew"

# 使用 sep 和 collapse參數(shù):
paste(a, d, sep="-", collapse=", ")
#> [1] "apple-fig, apple-grapefruit, apple-honeydew"

使用sprintf()

另一種方式是使用sprintf函數(shù),它來(lái)自于C語(yǔ)言匹厘。

想要在字符串或字符變量中進(jìn)行取代操作嘀趟,使用%s

a <- "string"
sprintf("This is where a %s goes.", a)
#> [1] "This is where a string goes."

如果是整數(shù),可以使用%d或它的變體:

x <- 8
sprintf("Regular:%d", x)
#> [1] "Regular:8"

# 可以輸出到字符串愈诚,以空格開(kāi)頭她按。
sprintf("Leading spaces:%4d", x)
#> [1] "Leading spaces:   8"

# 也可以使用0替代
sprintf("Leading zeros:%04d", x)
#> [1] "Leading zeros:0008"

對(duì)浮點(diǎn)數(shù),使用%f進(jìn)行標(biāo)準(zhǔn)釋義炕柔,而%e活著%E則代表指數(shù)酌泰。你也可以使用%g或者%G讓程序自動(dòng)幫你進(jìn)行兩種格式的轉(zhuǎn)換,這取決于你的有效位數(shù)匕累。下面是R help頁(yè)面中關(guān)于sprintf的例子:

sprintf("%f", pi)         # "3.141593"
sprintf("%.3f", pi)       # "3.142"
sprintf("%1.0f", pi)      # "3"
sprintf("%5.1f", pi)      # "  3.1"
sprintf("%05.1f", pi)     # "003.1"
sprintf("%+f", pi)        # "+3.141593"
sprintf("% f", pi)        # " 3.141593"
sprintf("%-10f", pi)      # "3.141593  "   (左對(duì)齊)
sprintf("%e", pi)         #"3.141593e+00"
sprintf("%E", pi)         # "3.141593E+00"
sprintf("%g", pi)         # "3.14159"
sprintf("%g",   1e6 * pi) # "3.14159e+06"  (指數(shù)化)
sprintf("%.9g", 1e6 * pi) # "3141592.65"   ("修正")
sprintf("%G", 1e-6 * pi)  # "3.14159E-06"

%m.nf格式規(guī)范中:m代表域?qū)捔晟玻禽敵鲎址凶址淖钚∥粩?shù),可以以空格或0開(kāi)頭欢嘿。n代表精度衰琐,它指小數(shù)點(diǎn)后的數(shù)字位數(shù)也糊。

其他混合操作:

x <- "string"
sprintf("Substitute in multiple strings: %s %s", x, "string2")
#> [1] "Substitute in multiple strings: string string2"

# To print a percent sign, use "%%"
sprintf("A single percent sign here %%")
#> [1] "A single percent sign here %"

注意

關(guān)于更多腳本輸出的信息可以查看this page

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末羡宙,一起剝皮案震驚了整個(gè)濱河市狸剃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌狗热,老刑警劉巖捕捂,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異斗搞,居然都是意外死亡指攒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)僻焚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)允悦,“玉大人,你說(shuō)我怎么就攤上這事虑啤∠冻冢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵狞山,是天一觀的道長(zhǎng)全闷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)萍启,這世上最難降的妖魔是什么总珠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮勘纯,結(jié)果婚禮上局服,老公的妹妹穿的比我還像新娘。我一直安慰自己驳遵,他們只是感情好淫奔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著堤结,像睡著了一般唆迁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竞穷,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天唐责,我揣著相機(jī)與錄音,去河邊找鬼来庭。 笑死妒蔚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肴盏,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼科盛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了菜皂?” 一聲冷哼從身側(cè)響起贞绵,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恍飘,沒(méi)想到半個(gè)月后榨崩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡章母,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年母蛛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乳怎。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彩郊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚪缀,到底是詐尸還是另有隱情秫逝,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布询枚,位于F島的核電站违帆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏金蜀。R本人自食惡果不足惜刷后,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望廉油。 院中可真熱鬧惠险,春花似錦、人聲如沸抒线。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嘶炭。三九已至,卻和暖如春逊桦,著一層夾襖步出監(jiān)牢的瞬間眨猎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工强经, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留睡陪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像兰迫,于是被迫代替她去往敵國(guó)和親信殊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 在挖掘分析的過(guò)程當(dāng)中對(duì)字符串的處理是極為重要的汁果,且出現(xiàn)也較為頻繁涡拘,R語(yǔ)言作為當(dāng)前最為流行的開(kāi)源數(shù)據(jù)分析和可視化平臺(tái)...
    果果哥哥BBQ閱讀 5,817評(píng)論 0 8
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評(píng)論 0 4
  • 只有離開(kāi)的人才有資格發(fā)告白嗎?當(dāng)然不是~ 坐在最初相聚的辦公室据德,聽(tīng)著身邊人聲嘈雜鳄乏,感慨時(shí)光改變你我,悲傷嗎棘利?不吧橱野,...
    S蘇蘇S閱讀 468評(píng)論 6 2
  • 1. 學(xué)校再過(guò)幾個(gè)月就要放長(zhǎng)假了仲吏。這時(shí)候第一想到的是約我好朋友小東一起去旅行 ◎蚍伲可想到他都讓我記起之前那些尷尬的事...
    _劉建宏_閱讀 1,241評(píng)論 6 20
  • 你所承接的陽(yáng)光和溫度都存在于那些謂之安穩(wěn)的恒定空間中裹唆,你被看護(hù)在美好之內(nèi)。而再跨一步只洒,煉獄中的人许帐,爬在你今生也不會(huì)...
    rosmarinus閱讀 509評(píng)論 2 2