R常用函數(shù)

只是自己學習時的一些筆記

R語言常用代碼整理

commannd+shift+c #批量多行注釋的快捷鍵

排序 order()函數(shù)
> b<-b[order(b$sub),] #將b數(shù)據框按照列名為sub的這一列升序排列,并重新賦值給b
#將數(shù)據框data按照性別排列猫缭,每種性別下再按照年齡升序排列。
> data1<-data[order(data$性別,data$年齡),] 
> data2<-data[order(data$性別),] # 按照性別升序排列
> data3<-data[order(data$性別,-data$年齡),] #性別升序络拌,性別內年齡降序排列。
均值

mean(b$number)計算b數(shù)據框number這一列的平均值
rowMeans(c)計算每行的平均值
colMeans(c)計算每列的平均值

mean_se計算得到平均值回溺,平均值+標準誤春贸,平均值-標準誤

high_ingroup<-mean_se(b[b$power==1 & b$group==1,"number"])

讀取b中 power一列等于1,并且 group一列等于1遗遵,所在的行萍恕,對應的number一列的數(shù)據。

b1<-b[b$power==1 & b$group==1,"number"]

讀取b中 power一列等于1车要,并且 group一列等于2允粤,所在的行,對應的number一列的數(shù)據。

b2<-b[b$power==1 & b$group==2,"number"]

計算b2的每一個唯一值對應的 b1數(shù)據的平均值类垫。
比如b2的唯一值總共有4個(0司光,1,2悉患,3)残家。看以下b1都有哪些行 b2等于0售躁,計算這些行b1的平均值坞淮。b2等于1,2陪捷,3同上回窘。

c<-tapply(b1,b2,mean)

用apply()函數(shù)求平均值
> x<-matrix(data=c(1,2,3,4,5,6,7,8,9,10,11,12),nrow=3)
> x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> apply(x,1,mean) #求每行的平均值
[1] 5.5 6.5 7.5
> apply(x,2,mean) #求每列的平均值
[1]  2  5  8 11
rbind 將矩陣 縱向 合并在一起。
也就是市袖,high_ingroup和high_outgroup等都有相同的列啡直,按照 縱向的方式拼接在一起。

rbind(high_ingroup,high_outgroup,high_unclass,low_ingroup,low_outgroup,low_unclass)

與rbind對應的是 cbind苍碟,將矩陣橫向合并在一起
library(dplyr) # 載入包dplyr付枫,方便下一步用 此包里的rename函數(shù)給數(shù)據框的列重新命名
將y重命名為mean_number;將ymin重命名為min_number驰怎;將ymax重命名為max_number

df1<-rename(df1, mean_number=y, min_number=ymin,max_number=ymax)

還可以用names()函數(shù)來重命名。不需要額外載入包二打。
> names(data)
 [1] "condition"           "power"               "membership"          "序號"                "實驗編號"           
 [6] "性別"                "年齡"                "職業(yè)"                "權力主觀評定"        "情景想象程度"       
[11] "懲罰Q1_情景1"        "懲罰Q2_情景1"        "懲量Q3_情景1"        "懲罰Q4_情景1"        "懲罰Q5_情景1"       
[16] "懲罰Q6_情景1"        "懲罰平均得分_情景1"  "懲罰平均得分2_情景1" "懲罰平均得分3_情景1" "懲罰Q1_情景2"       
[21] "懲罰Q2_情景2"        "懲量Q3_情景2"        "懲罰Q4_情景2"        "懲罰Q5_情景2"        "懲罰Q6_情景2"       
[26] "懲罰平均得分_情景2"  "報復性懲罰Q1"        "報復性懲罰Q2"        "報復性懲罰"          "期待滿足性懲罰"     
[31] "威懾動機Q1"          "威懾動機Q2"          "威懾動機Q3"          "威懾動機"            "剝奪動機"           
[36] "改善違規(guī)者未來行為"  "mean_puni_s1"        "cat"                
> names(data)[5]<-"subID" # 將實驗編號 重命名為 subID

> mydata<-data.frame(a=matrix(data=c(1,2,3,4,5,6,7,8,9,0),nrow=5,ncol=2))
> mydata
  a.1 a.2
1   1   6
2   2   7
3   3   8
4   4   9
5   5   0
> mydata1<-data.frame(a=matrix(data=c(1,2,3,4,5,6,7,8,9,0,3,2),nrow=4,ncol=3))
> mydata1
  a.1 a.2 a.3
1   1   5   9
2   2   6   0
3   3   7   3
4   4   8   2
# 要合并mydata和mydata1县忌,但是兩個數(shù)據,變量個數(shù)不同继效,所以要給mydata添加一列症杏。
> mydata2<-transform(mydata, a.4=NA) 
> mydata2
  a.1 a.2 a.4
1   1   6  NA
2   2   7  NA
3   3   8  NA
4   4   9  NA
5   5   0  NA
# 由于添加的變量名稱a.4和mydata1里的a.3不同,所以合并時報錯
> mydata_new=rbind(mydata1,mydata2)
Error in match.names(clabs, names(xi)) : 
  names do not match previous names
> names(mydata2)
[1] "a.1" "a.2" "a.4"
# 重命名a.4為a.3
> names(mydata2)[3]<-"a.3"
> names(mydata2)
[1] "a.1" "a.2" "a.3"
# 合并兩個數(shù)據集
> mydata_new=rbind(mydata1,mydata2)
> mydata_new
  a.1 a.2 a.3
1   1   5   9
2   2   6   0
3   3   7   3
4   4   8   2
5   1   6  NA
6   2   7  NA
7   3   8  NA
8   4   9  NA
9   5   0  NA
position=position_jitterdodge() 實現(xiàn)數(shù)據并列抖動功能瑞信。當數(shù)據大都是同一個值時厉颤,會重疊在一起,可以用這個功能凡简。
用法:

position_jitterdodge(jitter.width = NULL, jitter.height = 0, dodge.width = 0.75, seed = NA)

用于箱線圖或條形圖和點圖在一起的情形,且有順序的逼友,必須箱子或條形在前,點圖在后秤涩,抖動只能用在散點幾何對象中,
jitter.width 默認40%, jitter.height 默認0, dodge.width = 0.75 點分布于各組箱子(或條形)75%寬度上帜乞,默認點水平抖動錯開
也可以考慮使用 position="jitter",等價于position=position_jitter() 這個是擾動,默認抖動50%。
可以自己自定義擾動的參數(shù):

geom_point(position = position_jitter(width = 0.1, height = 0.1))

意思是:增加水平抖動10%筐眷,垂直抖動10%黎烈,但是抖動是隨機的,每次結果都可能不一樣。

position=position_jitterdodge()
position="jitterdodge"

縱向橫向同時分割

p + facet_grid(drv ~ cyl)

當只想單獨指定行分面或列分面時照棋,沒有指定分面變量的參數(shù)需要用'.'代替
縱向分割

p + facet_grid(drv ~ .)

橫向分割

p + facet_grid(. ~ cyl)

數(shù)據類型轉換

as.numeric(a)將a轉化為num類型的數(shù)據

類型轉換函數(shù)

a[,-1]去掉數(shù)據a第一列的數(shù)據
mydata <- transform(mydata, sumx = x1 + x2, meanx = (x1 + x2)/2)將計算mydata中资溃,x1和x2兩列的和和平均值,并添加到數(shù)據框mydata中烈炭。

算數(shù)運算符

邏輯運算符
# 將data數(shù)據框情景想象程度一列溶锭,數(shù)值大于6的數(shù)據 記為 higher,
# 并新增一列cat梳庆,將數(shù)據存儲在cat一列。
data$cat[data$情景想象程度>6]<-"higher"
View(data)
data$cat[data$情景想象程度<4]<-"higher"
data$cat[data$情景想象程度<4]<-"middle"
data$cat[data$情景想象程度>=4&data$情景想象程度<=6]<-"lower"

#等價于下面的代碼
data2<-within(data2,{
+     cat<-NA
+     cat[情景想象程度>6] <-"higher"
+     cat[情景想象程度<4] <-"lower"
+     cat[情景想象程度>=4&情景想象程度<=6] <-"middle"
+ })
View(data2)

rm(data5,data6,data7,a,b,data3) #rm()刪除特定變量膏执,如果有多個變量,用逗號分隔

缺失值識別

在R中,缺失值以符號NA(not available)表示
函數(shù)is.na()可以用來檢測缺失值是否存在蛉加。它會返回一個與數(shù)據大小相同的邏輯對象针饥,如果某個元素是缺失值厂抽,就返回TURE,否則就返回FALSE丁眼。
無限的值(正無窮和負無窮)分別用Inf和-Inf來表示筷凤。用is.infinite()來檢測。
不可能出現(xiàn)的值用NaN(not a number)來表示苞七。用is.nan()來檢測藐守。
要注意NA NaN Inf三者的區(qū)別。

> a<-is.na(data[,5:7])
       subID  性別  年齡
  [1,]  TRUE FALSE FALSE
  [2,]  TRUE FALSE FALSE
  [3,]  TRUE FALSE FALSE
  [4,]  TRUE FALSE FALSE
  [5,]  TRUE FALSE FALSE
  [6,]  TRUE FALSE FALSE
> str(a)
 logi [1:174, 1:3] TRUE TRUE TRUE TRUE TRUE TRUE ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:3] "subID" "性別" "年齡"
> dim(a)
[1] 174   3
> class(a)
[1] "matrix" "array" 
> mode(a)
[1] "logical"
統(tǒng)計分析時蹂风,不考慮缺失值NA吗伤。

可以使用na.rm=TRUE不把缺失值納入統(tǒng)計。
可以使用na.omit()刪除所有含缺失值數(shù)據的行硫眨。

> sum(data$subID) #因為subID一列包含缺失值足淆,所以返回值是NA
[1] NA
> sum(data$subID, na.rm=TRUE)#na.rm=TRUE不把缺失值納入統(tǒng)計
[1] 5108
> data_new<-na.omit(data) #刪除data中含有缺失值NA數(shù)據的行巢块。
> data
   condition power membership 序號 subID 性別 年齡 職業(yè) 權力主觀評定 情景想象程度 懲罰Q1_情景1 懲罰Q2_情景1 懲量Q3_情景1
1         11     1          1    1    NA    2   19    1            5            5            7            7            6
2         11     1          1    2    NA    2   18    1            7            7            7            7            7
3         11     1          1    3    NA    2   20    1            7            6            6            6            6
4         11     1          1    4    NA    2   18    1            7            5            6            6            6
5         11     1          1    6    NA    2   18    1            7            7            7            7            7
> data_new
    condition power membership 序號 subID 性別 年齡 職業(yè) 權力主觀評定 情景想象程度 懲罰Q1_情景1 懲罰Q2_情景1 懲量Q3_情景1
34         11     1          1    1   101    2   22    1            7            4            7            7            7
35         11     1          1    2   103    2   22    1            7            5            6            6            6
36         11     1          1    3   107    1   26    1            7            4            6            6            6
37         11     1          1    4   109    2   23    1            6            6            6            6            6
72         12     1          2    1   999    2   26    1            7            7            7            7            7

顯示時間和日期
> date() #顯示當前的時間和日期
[1] "Thu Feb 25 11:58:27 2021"
> Sys.Date() #顯示當前的日期
[1] "2021-02-25"

citation() # 輸出R的引用 參考文獻
citation(“l(fā)me4”) #輸出lme4這個包的引用 參考文獻

批量更改數(shù)據類型為factor
image.png
提取特定行/列的數(shù)據

leadership[ , c(6:10)] #這里代表leadership的所有行,6到10列的數(shù)據巧号。
需要注意的是族奢,在R里面,用留空代表所有行丹鸿,這個是跟matlab不一樣的地方越走。
另一種方法是:

> a<-c(1:8)
> b<-c(3:10)
> c<-paste("c",1:8,sep="")
> e<-data.frame(a,b,c)
> e
  a  b  c
1 1  3 c1
2 2  4 c2
3 3  5 c3
4 4  6 c4
5 5  7 c5
6 6  8 c6
7 7  9 c7
8 8 10 c8
# 使用subset()函數(shù),提取a列大于3同時b列小于8的行靠欢,c列的數(shù)據
> f<-subset(e,e$a>3 & e$b<8,select=c)
> f
   c
4 c4
5 c5
刪除特定列的數(shù)據
# %in%含義是:
# 看names(leadership)的元素是否包含在c("q3", "q4”)中廊敌,返回邏輯值TRUE 或者 FALSE
myvars <- names(leadership) %in% c("q3", "q4") 
newdata <- leadership[!myvars]
# 上述代碼的含義是:首先leadership中變量名為q3和q4的列會返回TRUE,
# 下一步门怪,通過!myvars選擇除了q3和q4之外的列骡澈,賦值給新的變量newdata。
# 這樣就間接達到了刪除q3和q4列的目的掷空。
# 另一種方法
newdata <- leadership[c(-8,-9)] #前面加負號就代表刪除這一列肋殴。
# 第三種方法
# 將q3和q4設置為NULL,達到的目的是一樣的坦弟,就是把q3和q4兩列刪除
leadership$q3 <- leadership$q4 <- NULL
用sample()函數(shù)隨機抽取數(shù)據
> nrow(e)
[1] 8
# 1:nrow(e)代表1到8护锤,3代表從1到8中隨機抽取3個數(shù),replace=FALSE代表無放回的抽取
# e[sample(1:nrow(e),3,replace=FALSE), ]代表選取 e中酿傍,生成的行里面所有列的數(shù)據烙懦。
> e[sample(1:nrow(e),3,replace=FALSE), ]
  a  b  c
6 6  8 c6
7 7  9 c7
8 8 10 c8
> e[sample(1:nrow(e),3,replace=FALSE), ]
  a  b  c
6 6  8 c6
1 1  3 c1
8 8 10 c8
> e[sample(1:nrow(e),3,replace=FALSE), ]
  a b  c
7 7 9 c7
4 4 6 c4
2 2 4 c2
R中常用的數(shù)值和字符處理函數(shù)
R中常用的數(shù)學函數(shù)1

R中常用的數(shù)學函數(shù)2

當這些函數(shù)被應用于數(shù)值向量,矩陣或者數(shù)據框時赤炒,他們會作用于每一個獨立的值氯析。例如:下面的例子,是對向量中的每一個數(shù)值都求平方可霎。

> a<-c(3.5,2.5,1.5,0.5,1.5,2.5,3.5)^2
> a
[1] 12.25  6.25  2.25  0.25  2.25  6.25 12.25
統(tǒng)計函數(shù)
用scale()函數(shù)進行數(shù)據的標準化
數(shù)據的標準化
> mydata<-read.csv(file.choose()) #手動選取文件讀入數(shù)據
> str(mydata) #查看數(shù)據結構
'data.frame':   84 obs. of  5 variables:
 $ subject  : chr  "F1" "F1" "F1" "F1" ...
 $ gender   : chr  "F" "F" "F" "F" ...
 $ scenario : int  1 1 2 2 3 3 4 4 5 5 ...
 $ attitude : chr  "pol" "inf" "pol" "inf" ...
 $ frequency: num  213 204 285 260 204 ...
> head(mydata) #查看數(shù)據前6列
  subject gender scenario attitude frequency
1      F1      F        1      pol     213.3
2      F1      F        1      inf     204.5
3      F1      F        2      pol     285.1
4      F1      F        2      inf     259.7
5      F1      F        3      pol     203.9
6      F1      F        3      inf     286.9
# 提取scenario和frequency兩列的的數(shù)據,賦值給mydata1
> mydata1<-mydata[,names(mydata) %in% c("scenario","frequency")]
> head(mydata1) #查看mydata1的前6列
  scenario frequency
1        1     213.3
2        1     204.5
3        2     285.1
4        2     259.7
5        3     203.9
6        3     286.9
> mydata2<-scale(mydata1) #對mydata1的所有列分別進行標準化宴杀,使其成為平均數(shù)為0癣朗,標準差為1的數(shù)據。
> head(mydata2)
       scenario frequency
[1,] -1.4910447 0.3008524
[2,] -1.4910447 0.1665847
[3,] -0.9940298 1.3963552
[4,] -0.9940298 1.0088097
[5,] -0.4970149 0.1574300
[6,] -0.4970149 1.4238191
> mean1<-mean(mydata1$scenario) #計算scenario一列的平均值
> s1<-sd(mydata1$scenario) #計算scenario一列的標準差
> mean1
[1] 4
> s1
[1] 2.012012
# 手動標準化 
> standard_scenario<-(mydata1$scenario-mean1)/s1
> standard_scenario
 [1] -1.4910447 -1.4910447 -0.9940298 -0.9940298 -0.4970149 -0.4970149  0.0000000  0.0000000  0.4970149  0.4970149
[11]  0.9940298  0.9940298  1.4910447  1.4910447 -1.4910447 -1.4910447 -0.9940298 -0.9940298 -0.4970149 -0.4970149
[21]  0.0000000  0.0000000  0.4970149  0.4970149  0.9940298  0.9940298  1.4910447  1.4910447 -1.4910447 -1.4910447
[31] -0.9940298 -0.9940298 -0.4970149 -0.4970149  0.0000000  0.0000000  0.4970149  0.4970149  0.9940298  0.9940298
[41]  1.4910447  1.4910447 -1.4910447 -1.4910447 -0.9940298 -0.9940298 -0.4970149 -0.4970149  0.0000000  0.0000000
[51]  0.4970149  0.4970149  0.9940298  0.9940298  1.4910447  1.4910447 -1.4910447 -1.4910447 -0.9940298 -0.9940298
[61] -0.4970149 -0.4970149  0.0000000  0.0000000  0.4970149  0.4970149  0.9940298  0.9940298  1.4910447  1.4910447
[71] -1.4910447 -1.4910447 -0.9940298 -0.9940298 -0.4970149 -0.4970149  0.0000000  0.0000000  0.4970149  0.4970149
[81]  0.9940298  0.9940298  1.4910447  1.4910447
> mydata2<-cbind(mydata2,standard_scenario) #將手動標準化的結果與mydata2合并
> head(mydata2) #查看結果旺罢,發(fā)現(xiàn)旷余,scenario和standard_scenario相等。
       scenario frequency standard_scenario
[1,] -1.4910447 0.3008524        -1.4910447
[2,] -1.4910447 0.1665847        -1.4910447
[3,] -0.9940298 1.3963552        -0.9940298
[4,] -0.9940298 1.0088097        -0.9940298
[5,] -0.4970149 0.1574300        -0.4970149
[6,] -0.4970149 1.4238191        -0.4970149
# 對特定列scenario進行標準差為5扁达,平均值為20的標準化正卧,標準化后的結果賦值給變量standard_scenario2,并加入到mydata中生成新的一列跪解,最后賦值給mydata3
> mydata3<-transform(mydata,standard_scenario2=scale(scenario)*5+20)
> head(mydata3)
  subject gender scenario attitude frequency standard_scenario2
1      F1      F        1      pol     213.3           12.54478
2      F1      F        1      inf     204.5           12.54478
3      F1      F        2      pol     285.1           15.02985
4      F1      F        2      inf     259.7           15.02985
5      F1      F        3      pol     203.9           17.51493
6      F1      F        3      inf     286.9           17.51493
> mean(mydata3$standard_scenario2) #計算平均值炉旷,發(fā)現(xiàn)確實是20
[1] 20
> sd(mydata3$standard_scenario2)#計算標準差,發(fā)現(xiàn)確實是5
[1] 5
概率函數(shù)
概率分布

set.sed()指定種子,可以讓結果重現(xiàn)窘行。set.seed()括號里面的參數(shù)可以是任意數(shù)字饥追,是代表你設置的第幾號種子而已,不會參與運算罐盔,是個標記而已但绕。

#將ToothGrowth_new數(shù)據框中的supp列,等于OJ的數(shù)據替換為WJ
#因為supp是factor惶看,所以要先變成character 不然會報錯
> ToothGrowth_new$supp<-as.character(ToothGrowth_new$supp)
> ToothGrowth_new$supp[which(ToothGrowth_new$supp=="OJ")] <-"WJ"
#通過aggregate函數(shù)捏顺,計算ToothGrowth$supp這一列,不同因子水平上 len這一列的平均值纬黎。
> aggregate(ToothGrowth$len,by=list(ToothGrowth$supp),FUN=mean)
  Group.1      x
1      OJ 20.663
2      VC 16.963

#通過str()函數(shù) 或者as.numeric()函數(shù)可以查看 不同標簽對應的數(shù)字是多少
as.numeric(ToothGrowth$supp,lable=c("OJ","VC"))
百分號的寫法
> a<-percent(c(0,1))
> a
[1] "0%"   "100%"
> str(a)
 chr [1:2] "0%" "100%"
查看轉義字符的使用方法

?Quotes

用sapply()函數(shù)提取列表的某一行的某一列
# "[" 是一個可以提取某個對象的一部分的函數(shù)幅骄。在這里是用來提取列表y個成分中的第一個和第二個元素的。
> sapply(y,"[",2) #提取y中的每一行的第二列的數(shù)據
 [1] "Davis"      "Williams"   "Moose"      "Jones"     
 [5] "Markhammer" "Cushing"    "Ytzrhak"    "Knox"      
 [9] "England"    "Rayburn"   
> sapply(y,"[",1) #提取y中的每一行的第一列的數(shù)據
 [1] "John"       "Angela"     "Bullwinkle" "David"     
 [5] "Janice"     "Cheryl"     "Reuven"     "Greg"      
 [9] "Joel"       "Mary"   
使用strsplit()函數(shù)將元素拆分 應用到字符串組成的向量上會返回一個列表
# 這里是用空格符號將Student數(shù)據里的 姓氏和姓名分開
> y <- strsplit(roster$Student, " ")
> y
[[1]]
[1] "John"  "Davis"

[[2]]
[1] "Angela"   "Williams"

[[3]]
[1] "Bullwinkle" "Moose"     

[[4]]
[1] "David" "Jones"

[[5]]
[1] "Janice"     "Markhammer"

[[6]]
[1] "Cheryl"  "Cushing"

[[7]]
[1] "Reuven"  "Ytzrhak"

[[8]]
[1] "Greg" "Knox"

[[9]]
[1] "Joel"    "England"

[[10]]
[1] "Mary"    "Rayburn"
quantile()函數(shù)計算百分位
# 這里是計算score 的0.8 0.6 0.4和0.2百分位莹桅。
> y <- quantile(roster$score, c(.8,.6,.4,.2))
> y 
80% 60% 40% 20%
0.74 0.44 -0.36 -0.89
apply() lapply() sapply()

apply() 可以把函數(shù)應用到數(shù)組的某個維度上;
lapply() sapply()可以把函數(shù)應用到列表上昌执。

image.png

image.png

cut()可以把連續(xù)變量x分割為有著n個水平的因子
> age1<-cut(bc$age,breaks = 3,labels = c(1,2,3))#平均分為3個區(qū)間,命名為1诈泼,2懂拾,3
> age2<-cut(bc$age,breaks=c(0,20,60,100),include.lowest=T,
labels = c(1,2,3))
#把age劃分為0-20,20-60铐达,60到100這樣3個區(qū)間
> dd<-cbind(bc,age2) #把變量加入表格
> x<-cut(c(1,2,3,4,5,6,7,8,9), 3,labels=c(1,2,3))
> x
[1] 1 1 1 2 2 2 3 3 3
Levels: 1 2 3
循環(huán) 和 條件執(zhí)行
for循環(huán)

for循環(huán) 重復執(zhí)行一個語句岖赋,直到某個變量的值不再包含在序列seq中為止。
for (var in seq) statement

for (i in 1:10)
{
print("Hello")
}
while循環(huán)

while循環(huán)重復地執(zhí)行一個語句瓮孙,直到條件不為真為止唐断。
while (cond) statement

i <- 10 
while (i > 0) 
{
print("Hello"); 
i <- i - 1
}
if-else

if (cond) statement if 在某個給定條件為真時執(zhí)行語句。
if (cond) statement1 else statement2 if-else 在某個給定條件為真時執(zhí)行語句杭抠,為假時執(zhí)行另外的語句脸甘。

if (is.character(grade)) 
grade <- as.factor(grade) 

if (!is.factor(grade)) 
grade <- as.factor(grade) 
else 
print("Grade already is a factor")
ifelse

ifelse(cond, statement1, statement2)
若cond為TRUE,則執(zhí)行第一個語句statement1偏灿;若cond為FALSE丹诀,則執(zhí)行第二個語句statement2。

ifelse(score > 0.5, print("Passed"), print("Failed")) 
outcome <- ifelse (score > 0.5, "Passed", "Failed")
switch

switch(expr, ...) switch根據一個表達式的值選擇語句執(zhí)行翁垂。

feelings <- c("sad", "afraid")
for (i in feelings) 
print( 
switch(i, 
happy = "I am glad you are happy", 
afraid = "There is nothing to fear", 
sad = “cheer up”,
angry = "Calm down now" ) 
# 含義是铆遭,i等于sad時,print(也就是輸出)cheer up
# i等于afraid時沿猜,print(也就是輸出)There is nothing to fear
)
用戶自編函數(shù)
image.png
轉置 t()

函數(shù)t()對一個矩陣或者數(shù)據框進行轉置

數(shù)據重構這部分 待補充
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末枚荣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子啼肩,更是在濱河造成了極大的恐慌橄妆,老刑警劉巖衙伶,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呼畸,居然都是意外死亡痕支,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門蛮原,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卧须,“玉大人,你說我怎么就攤上這事儒陨』ㄋ唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵蹦漠,是天一觀的道長椭员。 經常有香客問我,道長笛园,這世上最難降的妖魔是什么隘击? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮研铆,結果婚禮上埋同,老公的妹妹穿的比我還像新娘。我一直安慰自己棵红,他們只是感情好凶赁,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逆甜,像睡著了一般虱肄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上交煞,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天咏窿,我揣著相機與錄音,去河邊找鬼素征。 笑死集嵌,一個胖子當著我的面吹牛,可吹牛的內容都是我干的稚茅。 我是一名探鬼主播纸淮,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼平斩,長吁一口氣:“原來是場噩夢啊……” “哼亚享!你這毒婦竟也來了?” 一聲冷哼從身側響起绘面,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤欺税,失蹤者是張志新(化名)和其女友劉穎侈沪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晚凿,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡亭罪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了歼秽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片应役。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖燥筷,靈堂內的尸體忽然破棺而出箩祥,到底是詐尸還是另有隱情,我是刑警寧澤肆氓,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布袍祖,位于F島的核電站,受9級特大地震影響谢揪,放射性物質發(fā)生泄漏蕉陋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一拨扶、第九天 我趴在偏房一處隱蔽的房頂上張望凳鬓。 院中可真熱鬧,春花似錦屈雄、人聲如沸村视。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚁孔。三九已至,卻和暖如春惋嚎,著一層夾襖步出監(jiān)牢的瞬間杠氢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工另伍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鼻百,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓摆尝,卻偏偏與公主長得像温艇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子堕汞,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 《R數(shù)據科學》的再次回顧學習勺爱,以及使用tidyverse過程中的一些new tricks學習記錄。 [TOC] 前...
    Dawn_WangTP閱讀 1,287評論 0 11
  • Tidyverse dplyr glimpse(data)查看數(shù)據變量類型及前幾個值 summarize(data...
    維特根斯坦然自若閱讀 563評論 1 1
  • 按照用途分類出以下統(tǒng)計函數(shù): AVEDEV 用途:返回一組數(shù)據與其平均值的絕對偏差的平均值讯检,該函數(shù)可以評測數(shù)據(例...
    四方院祭司閱讀 2,894評論 0 3
  • 作者:嚴濤浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農琐鲁,R語言愛好者卫旱,愛開源 ggplot2學習筆記之圖...
    wanghaihua888閱讀 2,622評論 0 6
  • 推薦指數(shù): 6.0 書籍主旨關鍵詞:特權、焦點围段、注意力顾翼、語言聯(lián)想、情景聯(lián)想 觀點: 1.統(tǒng)計學現(xiàn)在叫數(shù)據分析奈泪,社會...
    Jenaral閱讀 5,716評論 0 5