官术网_书友最值得收藏!

2.1 在屏幕上顯示內(nèi)容

2.1.1 問題

通過R軟件顯示某一變量或表達(dá)式的值。

2.1.2 解決方案

在命令提示符后輸入變量名稱或表達(dá)式,R軟件會直接在屏幕中輸出其值。使用print函數(shù)能輸出任何變量和表達(dá)式值。使用cat函數(shù)能生成自定義格式的輸出。

2.1.3 討論

通過R軟件顯示一些內(nèi)容非常容易——只需在命令提示符處輸入:


pi
#> [1] 3.14
sqrt(2)
#> [1] 1.41

當(dāng)輸入這些表達(dá)式時(shí),R會計(jì)算表達(dá)式,然后自動調(diào)用print函數(shù)。所以前面的例子等同于如下命令:


print(pi)
#> [1] 3.14
print(sqrt(2))
#> [1] 1.41

print函數(shù)的美妙之處在于它知道以何種格式顯示結(jié)果,包括矩陣和列表等結(jié)構(gòu)化變量:


print(matrix(c(1, 2, 3, 4), 2, 2))
#>      [,1] [,2]
#> [1,]    1    3
#> [2,]    2    4
print(list("a", "b", "c"))
#> [[1]]
#> [1] "a"
#>
#> [[2]]
#> [1] "b"
#>
#> [[3]]
#> [1] "c"

這很有用,因?yàn)槟闶冀K可以通過print函數(shù)查看數(shù)據(jù)。即使是復(fù)雜的數(shù)據(jù)結(jié)構(gòu),也無須編寫特殊的顯示邏輯。

但是,print函數(shù)有一個(gè)很大的局限性:它一次只能顯示一個(gè)對象。嘗試顯示多個(gè)變量會產(chǎn)生以下錯誤消息:


print("The zero occurs at", 2 * pi, "radians.")
#> Error in print.default("The zero occurs at", 2 * pi, "radians."):
#>     invalid 'quote' argument

只有通過多次使用print函數(shù)才能顯示多個(gè)對象,這可能不是用戶想要的:


print("The zero occurs at")
#> [1] "The zero occurs at"
print(2 * pi)
#> [1] 6.28
print("radians")
#> [1] "radians"

cat函數(shù)是print函數(shù)的替代方法,它可以將多個(gè)對象連接并以連續(xù)的方式輸出:


cat("The zero occurs at", 2 * pi, "radians.", "\n")
#> The zero occurs at 6.28 radians.

請注意,cat函數(shù)默認(rèn)在每個(gè)對象之間放置一個(gè)空格。你必須使用換行符(\n)才能結(jié)束本行語句。

cat函數(shù)也可以顯示簡單的向量:


fib <- c(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)
cat("The first few Fibonacci numbers are:", fib, "...\n")
#> The first few Fibonacci numbers are: 0 1 1 2 3 5 8 13 21 34 ...

使用cat函數(shù)可以更好地控制輸出,這使得它在R程序中尤為重要。然而,它也有嚴(yán)重的限制,即它無法顯示復(fù)合數(shù)據(jù)結(jié)構(gòu),如矩陣和列表。使用cat函數(shù)顯示列表會得到以下錯誤消息:


cat(list("a", "b", "c"))
#> Error in cat(list("a", "b", "c")): argument 1 (type 'list') cannot
#>     be handled by 'cat'

2.1.4 另請參閱

有關(guān)控制輸出格式,請參閱4.2節(jié)。

主站蜘蛛池模板: 通城县| 禹州市| 濮阳市| 永康市| 承德市| 渝中区| 宜兰县| 项城市| 陆丰市| 三穗县| 海林市| 都昌县| 晋州市| 乳山市| 西乡县| 昭苏县| 赞皇县| 调兵山市| 南宁市| 陇川县| 大理市| 裕民县| 洛川县| 策勒县| 克山县| 蕲春县| 吉隆县| 邓州市| 分宜县| 老河口市| 灵川县| 汤阴县| 临邑县| 库尔勒市| 宁远县| 双流县| 彰化县| 化隆| 疏勒县| 佳木斯市| 土默特右旗|