function其實也沒有那麼難

2021-08-15 16:54:37 字數 2025 閱讀 7340

function其實也沒有那麼難

1.最簡單的function函式,你想到了嗎?

library(plyr)

data("iris")

head(iris)

test1

1,function(dat))

head(test1)

class(test1)

#用subset實現也完全麼問題,但是就是輸出的結果形式不同

head(subset(iris,sepal.length>=5.6&species=="setosa"))

為什麼說這個是最簡單的函式了呢?不是下回分解…哈哈,不好笑。這個是adply函式,引數格式為adply(data,1/2,function),在這裡,我計算的是選擇出sepal.length大於等於5且種類是setosa的花,當然我們也可以用subset(iris,sepal.length>=5.6&dat$species==」setosa」)做出來,而且一點毛病沒有,重點在於對function的理解。

首先是function(dat)中的dat的設定,這個引數是根據計算物件而來的,寫到這裡dat並沒有什麼實際意義,你也可以換成是sub或者就是x,沒有問題。重點是iris與dat$sepal.length>=5.6&dat$species==」setosa」之間的計算關係,這點搞清楚就好了。我們其實是iris中的資料按行(1)迴圈放入到function中去計算,而function的功能是按照iris的變數去條件運算。

也就是說dat$sepal.length實際上在運算過程是等價於iris$sepal.length的,並且,在function中並沒有其他迴圈函式或者數學函式。所以,只要你能領悟dat和iris的等價關係,那就可以寫出這樣的最為簡單的自定義函式。

2.加上有乙個簡單的函式mean

#利用ddply分花種計算sepal.width的平均值

test2

iris,

.(species),

function(sub)

)test2

class(test2)

###給新生的變數命名,就要自己手動把結果加上乙個資料框

test3

iris,

.(species),

function(sub)

)test3

class(test3)

這裡這種分組計算,我以前說過用sqldf的groupby分組計算完成,的確可以。但是領悟到了iris(資料)和function(x)中的x的關係的時候,我發現使用ddply的確是足夠便利。這種便利不僅體現在計算上,而且體現在ddply、melt和ggplot2的三個函式的使用上。

3.上面那兩個沒有看夠的話,這裡還有

###這往往是文字挖掘的第一步,請有心者自行收藏

files_dir=list.files("./sample-sougou",full.names=t)

length(files_dir)

files_dir #看一下檔案路徑

filedirs=files_dir[1:10]

filedirs #根據實際情況刪去最後的說明文件

filedirs[1]

##遍歷子檔案

readsubfiles=function(x)

fullfiles_final=unlist(fullfiles)

length(fullfiles_final) #最終的全部txt檔案路徑

(二)單鏈表 其實沒有那麼難

單鏈表比較靜態鍊錶更加靈活,長度可變,刪除便捷,唯一較單鏈表費時就是查詢,不能下標查詢。但是總體上比靜態鍊錶有了質的飛躍。單鏈表最核心的就是指標的靈活使用,以及對較為特殊結構的理解。結構中最後的指標指向同結構的下個元素,這個指標就像鍊子一樣,乙個接乙個把資料串起來。typedef struct si...

寫作其實沒有你想象的那麼難

從2009年正式開始寫作以來,寫作越來越多。文學作品 技術文章 思想感悟等都越來越多,質量也在不斷提高。最近,有強烈的寫作慾望,所以一不小心就寫了好多篇。五月以來,也開始寫作畢設了,今天又寫了一點。逐漸的形成了乙個結論。寫作其實沒有你想象的那麼難。認為寫作難,是因為根本就沒有想好。沒有乙個總體的想法...

寫作其實沒有你想象的那麼難

從2009年正式開始寫作以來,寫作越來越多。文學作品 技術文章 思想感悟等都越來越多,質量也在不斷提高。最近,有強烈的寫作慾望,所以一不小心就寫了好多篇。五月以來,也開始寫作畢設了,今天又寫了一點。逐漸的形成了乙個結論。寫作其實沒有你想象的那麼難。認為寫作難,是因為根本就沒有想好。沒有乙個總體的想法...