導航:首頁 > 網路營銷 > r語言sem包

r語言sem包

發布時間:2021-02-05 03:48:45

1、R語言有哪些常用的包???

R語言是數copy據處理的神器,常用的包很多,比如ggplot2, dplyr, knitr等等,可以參考這個博客

http://blog.csdn.net/tanzuozhev/article/details/46536651

2、怎麼才能查看R語言某個包某函數源碼

首先,一個擴展包中定義的函數有區分公開和不公開的,會在擴展包根目錄下的專NAMESPACE文件中定義是否Export,如屬果一個函數沒有Export,則為不公開的函數,只能在包內部調用。
lattice::qq是一個Generic Function,就像是plot,summary等函數,是由對象的class來確定實際執行的函數(例如對於data frame,執行summary時會執行summary.data.frame,對於lm會執行summary.lm等等,都不是則會執行summary.default)這是R S3 面向對象系統的設計。

3、如何找到某篇論文的r語言擴展包

在r中看函數源代碼:
在R中,代碼可以分為如下幾個級別:

首先,是你輸入了函數對象名稱,你可以直接看到代碼的,如要獲得函數對象fivenum的代碼,就只需要在Console中鍵入函數對象名稱fivenum就可以得到如下結果:

function (x, na.rm = TRUE)
{
xna <- is.na(x)
if (na.rm)
x <- x[!xna]
else if (any(xna))
return(rep.int(NA, 5))
x <- sort(x)
n <- length(x)
if (n == 0)
rep.int(NA, 5)
else {
n4 <- floor((n + 3)/2)/2
d <- c(1, n4, (n + 1)/2, n + 1 - n4, n)
0.5 * (x[floor(d)] + x[ceiling(d)])
}
}
<environment: namespace:stats>

從上面的例子可以看出,這類函數對象的代碼是最容易看到的,也是我們學習的最好的材料了,而R中最大多數的函數對象是以這種方式出現的。

其次,我們在輸入mean這類函數名次的時候,會出現如下結果:

function (x, ...)
UseMethod("mean")
<environment: namespace:base>

這表示函數作者把函數「封」起來了。這個時候我們可以先試一試methods(mean),利用methods函數看看mean這個函數都有哪些類型的,我們得到的結果如下:

[1] mean.data.frame mean.Date mean.default mean.difftime mean.POSIXct mean.POSIXlt

其實對此可以有一個簡單的理解,雖然不夠精確。因為在R中,mean函數可以求得屬於不同類型對象的平均值,而不同類型對象平均值的求法還是有一些小小差 異的,比如說求一個向量的平均值和求一個數據框的平均值就有所差異,就要編寫多個mean函數,然後「封」起來,以一個統一的mean出現,方便我們使 用。這正好也反映了R有一種類似泛型編程語言的性質。

既然我們已經知道mean中還有這么多種類,我們可以輸入mean.default試一試就可以得到:

function (x, trim = 0, na.rm = FALSE, ...)
{
if (!is.numeric(x) && !is.complex(x) && !is.logical(x)) {
warning("argument is not numeric or logical: returning NA")
return(as.numeric(NA))
}
if (na.rm)
x <- x[!is.na(x)]
trim <- trim[1]
n <- length(x)
if (trim > 0 && n > 0) {
if (is.complex(x))
stop("trimmed means are not defined for complex data")
if (trim >= 0.5)
return(stats::median(x, na.rm = FALSE))
lo <- floor(n * trim) + 1
hi <- n + 1 - lo
x <- sort.int(x, partial = unique(c(lo, hi)))[lo:hi]
n <- hi - lo + 1
}
.Internal(mean(x))
}
<environment: namespace:base>

同樣就可以得到mean.data.frame、mean.Date、mean.difftime、mean.POSIXct、mean.POSIXlt 的具體內容了。值得注意的是,在R中,出現有多個同樣近似功能的函數封裝為一個函數的時候(這時候在函數中多半會出現類似UseMethod函數使用的情 況),我們不妨先輸入mean.default試一試。這種形式的函數在R中一般作為默認的函數表示。

第三,這是一種特殊的情況,有人認為應該和第二種是一類,但是我還是要提出來單獨歸類。在這種情況也和第二種的原因有些類似,但並不是完全一致。

也許我們大家都很熟悉plot函數了吧,輸入函數名plot的時候,我們會得到如下結果:

function (x, y, ...)
{
if (is.null(attr(x, "class")) && is.function(x)) {
nms <- names(list(...))
if (missing(y))
y <- {
if (!"from" %in% nms)
0
else if (!"to" %in% nms)
1
else if (!"xlim" %in% nms)
NULL
}
if ("ylab" %in% nms)
plot.function(x, y, ...)
else plot.function(x, y, ylab = paste(deparse(substitute(x)),
"(x)"), ...)
}
else UseMethod("plot")
}
<environment: namespace:graphics>

請注意plot函數中也出現了UseMethod這個函數,但是和mean不同的是,前面有相當多的語句用於處理其他一些事情。這個時候,我們也使用methods(plot)來看看,得到如下結果:

plot.acf* plot.data.frame* plot.Date* plot.decomposed.ts* plot.default
plot.dendrogram* plot.density plot.ecdf plot.factor* plot.formula*
plot.hclust* plot.histogram* plot.HoltWinters* plot.isoreg* plot.lm
plot.medpolish* plot.mlm plot.POSIXct* plot.POSIXlt* plot.ppr*
plot.prcomp* plot.princomp* plot.profile.nls* plot.spec plot.spec.coherency
plot.spec.phase plot.stepfun plot.stl* plot.table* plot.ts
plot.tskernel* plot.TukeyHSD

不看不知道,一看嚇一跳,還以為我們輸入plot的輸出就是函數本身,結果也許不是如此。可能有人已經理解了,其實最後的UseMethod函數實在默認的調用plot.default函數,趕快再看看plot.default函數吧,發現它再調用plot.xy函數,再看看plot.xy函數,再plot.xy函數中調用了一個.Internal(plot.xy(xy, type, pch, lty, col, bg, cex, lwd, ...))函數,也許這就是真正起作用的函數了吧。思路基本上就是如此了,是否這個時候您可以獲得一些閱讀查找R函數內容的樂趣。

除了直接輸入FUN.default形式外,還可以使用getS3method(FUN,"default")來獲得代碼。這樣就解決了絕大多數函數代碼查看的工作了。

在第二種情況種,我們說了一般可以通過FUN.default獲得想要的結果。但是只有稱為generic的函數才有這種「特權」。而lm等則沒有,不過我們也可以嘗試使用methods(lm)來看看結果如何,發現:
[1] lm.fit lm.fit.null lm.influence lm.wfit lm.wfit.null
Warning message:
function 'lm' appears not to be generic in: methods(lm)

出現了警告信息,表示說lm不是泛型函數,但是還是給出了結果lm.fit等,大致上可以看成是和lm相關的系列函數吧。這樣子就出現了有趣的局面,比如說既有plot.ts,也有ts.plot。

依照第三種情況,我們發現竟然有的函數用星號標識了的,比如plot.stl*等,當我們輸入plot.stl,甚至是plot.stl*的時候都會給出 要麼找不到這個對象,要麼乾脆是代碼錯誤的信息。原來凡是用了*標識的函數,都是隱藏起來的函數,估計是怕被人看見(其實這是玩笑話)!我們要看這些函數 的代碼,我們該怎麼辦呢?其實也很容易,使用功能強大的getAnywhere(FUN),看看這個函數的名稱,就可以猜想到它的功能估計是很強大的, Anywhere的內容都可以找到!getAnywhere(plot.stl)的結果如下:

A single object matching 'plot.stl' was found
It was found in the following places
registered S3 method for plot from namespace stats
namespace:stats
with value
function (x, labels = colnames(X), set.pars = list(mar = c(0,
6, 0, 6), oma = c(6, 0, 4, 0), tck = -0.01, mfrow = c(nplot,
1)), main = NULL, range.bars = TRUE, ..., col.range = "light gray")
{
sers <- x$time.series
ncomp <- ncol(sers)
data <- drop(sers %*% rep(1, ncomp))
X <- cbind(data, sers)
colnames(X) <- c("data", colnames(sers))
nplot <- ncomp + 1
if (range.bars)
mx <- min(apply(rx <- apply(X, 2, range), 2, diff))
if (length(set.pars)) {
oldpar <- do.call("par", as.list(names(set.pars)))
on.exit(par(oldpar))
do.call("par", set.pars)
}
for (i in 1:nplot) {
plot(X[, i], type = if (i < nplot)
"l"
else "h", xlab = "", ylab = "", axes = FALSE, ...)
if (range.bars) {
dx <- 1/64 * diff(ux <- par("usr")[1:2])
y <- mean(rx[, i])
rect(ux[2] - dx, y + mx/2, ux[2] - 0.4 * dx, y -
mx/2, col = col.range, xpd = TRUE)
}
if (i == 1 && !is.null(main))
title(main, line = 2, outer = par("oma")[3] > 0)
if (i == nplot)
abline(h = 0)
box()
right <- i%%2 == 0
axis(2, labels = !right)
axis(4, labels = right)
axis(1, labels = i == nplot)
mtext(labels[i], side = 2, 3)
}
mtext("time", side = 1, line = 3)
invisible()
}
<environment: namespace:stats>

注意到前面有一段解釋型的語言,描述了我們要找的這個函數放在了什麼地方等等。其實對任意我們可以在R中使用的函數,都可以先試一試getAnywhere,看看都有些什麼內容。算是一個比較「霸道」的函數。

在上面plot.xy函數中,我們還可以看到.Internal這個函數,類似的也許還可以看到.Primitive、.External、.Call等函數這就和R系統內部工作方式和與外部介面的定義有關了,如果對這些函數有興趣的話,就要學習組成R系統的源代碼了。

最後,如果真的想閱讀組成R系統本身的源代碼,在各個CRAN中均有下載。你可以得到組成R系統所需要的材料。其中很多C語言(還有就是F)的源代碼,均 是精心挑選過的演算法,哪怕就是想學從頭到尾編寫具體的演算法,也是學習的好材料。同時,你可以看到R系統內部是如何構成的,理解了這些對於高效使用R有至關 重要的作用。這個范疇的材料就要著重看一看R-Lang和R-inits了。

4、R語言里做時間序列分析有哪些包

傾情來推薦TSA這個函數包,包含了《時源間序列分析及應用:R語言》中幾乎所有涉及到的函數~
library(zoo)
###時間格式預處理
library(xts)
###同上
library(timeSeires) ###同上
library(urca) ###進行單位根檢驗
library(tseries) ###arma模型
library(fUnitRoots) ###進行單位根檢驗
library(FinTS) ###調用其中的自回歸檢驗函數
library(fGarch) ###GARCH模型
library(nlme) ###調用其中的gls函數
library(fArma) ###進行擬合和檢驗

5、r語言中的arcsin在哪個包

r語言中的arcsin在哪個包
沒有,只有一個Atn()是VB反正切函數,VB不提供其他反三角函數,不過可內以用下列公式導出:容
反正弦
Arcsin(X) = Atn(X / Sqr(-X * X + 1))
反餘弦
Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
反正割
Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1))
反餘割
Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))

6、R語言的R包及其使用

1、通過選擇菜單:
程序包->安裝程序包->在彈出的對話框中,選擇你要安裝的包,然後確定。
2、使用命令
install.packages(package_name,dir)
package_name:是指定要安裝的包名,請注意大小寫。
dir:包安裝的路徑。默認情況下是安裝在..library 文件夾中的。可以通過本參數來進行修改,來選擇安裝的文件夾。
3、本地來安裝
如果你已經下載的相應的包的壓縮文件,則可以在本地來進行安裝。請注意在windows、unix、macOS操作系統下安裝文件的後綴名是不一樣的:
1)linux環境編譯運行:tar.gz文件
2)windows 環境編譯運行 :.zip文件
3)MacOSg環境編譯運行:.tgz文件
註:包安裝好後,並不可以直接使用,如果在使用包中相關的函數,必須每次使用前包載入到內存中。通過library(package_name)來完成。 包安裝後,如果要使用包的功能。必須先把包載入到內存中(默認情況下,R啟動後默認載入基本包),載入包命令:
Library(「包名」)
Require(「包名」) 1、查看包幫忙
library(help=package_name)
主要內容包括:例如:包名、作者、版本、更新時間、功能描述、開源協議、存儲位置、主要的函數
help(package = package_name)
主要內容包括:包的內置所有函數,是更為詳細的幫助文檔

2、查看當前環境哪些包載入
find.package() 或者 .path.package()

3、移除包出內存
detach()
4、把其它包的數據載入到內存中
data(dsname, package=package_name)
5、查看這個包里的包有數據
data( package=package_name)
6、列出所有安裝的包
library()

7、r語言用sem包,輸出結果GFI和RMSEA值為什麼為NA?

?

8、R語言中,你最常用的軟體包有哪些,請簡述功能及特點?

stargazer這個包的特點就是復將統計好的數據以制雜志的風格展現出來,擁有大量的排版風格,可以說是一個非常有個性的包,個人比較喜歡,當然這個包支持的文件格式也比較多LaTex,html,ASCII等等格式。剛才說了雜志排版時這個包的一大特點,大致涵蓋了American Economic Review,American Sociological Review,American Journal of Political Science,Administrative Science Quarterly等。(不得不說,經濟學政治學社會學管理學的頂級期刊都包括了,這個作者真的很博愛。)另外,這個包還可以輸出相關系數矩陣、描述性統計結果等,定製化程度很高。有一個cheatsheet,看完就能直接用。

9、R語言中最常用,很好用的包有哪些

ggplot2畫圖的

10、R語言哪些包可用來做聚類分析

library(flexclust)數據nutrient可以用來做聚類分析
library(NbClust)函數NbClust()選擇層次聚類分析聚內類的個數
library(rattle)數據wine可以做K均值分容析
library(stats)函數kmeans()進行K均值聚類分析
library(cluster)函數pam()進行中心點的劃分聚類分析,數據可用用wine

與r語言sem包相關的知識