Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Biomedical Engineering Theory And Practice/R Language

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Data Types R has a various objects for holding data, including scalars, vectors, matrices, arrays, data frames, and lists. Scalar and Constant "Scalar" generally means "one-dimensional"vector. Constants only have one value ever. You can constants is similar to zero-dimensional values (a single point). Scalar > x<-3 > y<-6 > z<-x+y > z [1] 9 Constant > 2+3 [1] 5 > 5-4 [1] 1 > 6*4 [1] 24 Vector Vectors are one-dimensional arrays that can hold numeric data, character data, or logical data. The combine function c() is used to form the vector. Here are examples of each type of vector: > a<-c(1,2,5,-3,-6,5) #nummeric vector > b<-c("one","two","three") #character vector > d<-c(TRUE,FALSE,TRUE,FALSE,TRUE,TRUE) #logical vector > a[c(2,4)] [1] 2 -3 > a[4] [1] -3 > a[2:4] [1] 2 5 -3 Matrix A matrix is a two-dimensional array where each element has the same mode (numeric, character, or logical). Matrices are created with the "matrix" function . The general format is as follows: > mymatrix <- matrix(vector, nrow=number of rows, ncol=number of columns,byrows=logical value, dimnames=list(vector-of-rownames,vector-of-colnames)) > A<-matrix(1:9,nrow=3) > A [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > A[2,1] [1] 2 > A<-matrix(1:9,nrow=3,byrow=T) > A [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 Array > myarray <-array(vector, dimensions, dimnames) > dim1 <- c("A1","A2","A3") > dim2 <- c("B1","B2","B3","B4") > dim3 <- c("C1","C2") > x<-array(1:24,c(3,4,2),dimnames=list(dim1,dim2,dim3)) > x , , C1 B1 B2 B3 B4 A1 1 4 7 10 A2 2 5 8 11 A3 3 6 9 12 , , C2 B1 B2 B3 B4 A1 13 16 19 22 A2 14 17 20 23 A3 15 18 21 24 Data Frame >mydata <-data.frame(col1,col2,col3....) > patientID<-LETTERS[1:4] > age<-c(24,35,28,52) > diabetes<-c("Type1","Type2","Type1","Type2") > stats<-c("Poor","Improved","Poor","Excellent") > patientDATA<-data.frame(patientID,age,diabetes,stats,row.names=letters[1:4]) > patientDATA patientID age diabetes stats a A 24 Type1 Poor b B 35 Type2 Improved c C 28 Type1 Poor d D 52 Type2 Excellent Factors > patientID<-LETTERS[1:4] > age<-c(24,35,28,52) > diabetes<-c("Type1","Type2","Type1","Type2") > stats<-c("Poor","Improved","Poor","Excellent") > status <- factor(stats, order=TRUE) > patientdata <- data.frame(patientID, age, diabetes, status) > str(patientdata) 'data.frame': 4 obs. of 4 variables: $ patientID: Factor w/ 4 levels "A","B","C","D": 1 2 3 4 $ age : num 24 35 28 52 $ diabetes : Factor w/ 2 levels "Type1","Type2": 1 2 1 2 $ status : Ord.factor w/ 3 levels "Excellent"<"Improved"<..: 3 2 3 1 > summary(patientdata) patientID age diabetes status A:1 Min. :24.00 Type1:2 Excellent:1 B:1 1st Qu.:27.00 Type2:2 Improved :1 C:1 Median :31.50 Poor :2 D:1 Mean :34.75 3rd Qu.:39.25 Max. :52.00 Lists >mylist <- list(name1=object1,name2=object2,...) > x<-"TheList" > y<-c(25,19,20) > z<-matrix(1:10,nrow=2,byrow=TRUE) > theta<-LETTERS[1:10] > delta<-c(2+3i,4-6i) > mylist<-list(title=x,components=y,z,theta,delta) > mylist $title [1] "TheList" $components [1] 25 19 20 [[3]] [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10 [[4]] [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" [[5]] [1] 2+3i 4-6i > mylist[[2]] [1] 25 19 20 > mylist[["components"]] [1] 25 19 20 > lapply(mylist,length) $title [1] 1 $components [1] 3 [[3]] [1] 10 [[4]] [1] 10 [[5]] [1] 2 > lapply(mylist,class) $title [1] "character" $components [1] "numeric" [[3]] [1] "matrix" [[4]] [1] "character" [[5]] [1] "complex" > lapply(mylist,mean) $title [1] NA $components [1] 21.33333 [[3]] [1] 5.5 [[4]] [1] NA [[5]] [1] 3-1.5i Warning messages: 1: In mean.default(X[[1L]], ...) : argument is not numeric or logical: returning NA 2: In mean.default(X[[4L]], ...) : Basic Functions Arithmetic Operators The arithmetic operators and their examples which are used in R programming are listed in the table below. Function R Command Example Exponentiation, > a^b > 3+6 [1] 9 Multiplication, > a*b > 22*5 [1] 110 Division, > a/b > 30/3 [1] 10 Addition, > a+b > 10+9 [1] 19 Subtraction, > a-b > 10-3 [1] 7 Integer(Quotient) > a%/%b > 20%/%3 [1] 6 Modulo(Remainder) > a%%b > 20%%3 [1] 2 Complex Number > x<-5.2-3i R command R command Complex number > Re(x) [1] 5.2 Real part > Im(x) [1] -3 Imaginary part > Im(x) [1] -3 Modulus > Mod(x) [1] 6.003332 Argument > Arg(x) [1] -0.5232783 Conjugate > Conj(x) [1] 5.2+3i Membership > is.complex(x) [1] TRUE Coercion > as.complex(19.6) [1] 19.6+0i Rounding Function R Command Function R Command Greatest integer less than > floor(9.9) [1] 9 > floor(-9.9) [1] -10 Next integer > ceiling(9.9) [1] 10 > ceiling(-9.9) [1] -9 Rounding function > round(9.9) [1] 10 > round(9.2) [1] 9 Strip off the decimal > trunc(8.6) [1] 8 > trunc(-8.6) [1] -8 Trigonometric Functions Function Trigometric Function Trigometric Inverse Function Hyperbolic Function Hyperbolic Inverse Function sine sin(x) asin(x) sinh(x) asinh(x) cosine cos(x) acos(x) cosh(x) acosh(x) tangent tan(x) atan(x) tanh(x) atanh(x) Log and Exponential Functions Function R command R Example Absolute, abs(x) > abs(-7.4) [1] 7.4 Log to the base e, > log(10) [1] 2.302585 Log to the base 10, log10(x) > log10(100) [1] 2 Log to the base n of x log(x,n) > log(64,4) [1] 3 exp(x) > exp(3) [1] 20.08554 sqrt(x) > sqrt(25) [1] 5 factorial(x) > factorial(10) [1] 3628800 combinations(n,r) > choose(5,4) [1] 5 Relational Operators and Logical Variables Relational Operators Relational Operator Equal == Not equal != Less than < Greater than > Less than or equal <= Greater than or equal >= TRUE=1,FALSE=0 > x<-c(6,3,4) > y<-c(5,15,9) > z<-(x<y) > z [1] FALSE TRUE TRUE > z<-(x<y)+5 > z [1] 5 6 6 Logical Operators & False(0) False(0) True(1) False(0) False(0) False(0) False(0) True(1) True(1) False(0) True(1) True(1) True(1) False(0) False(0) False(0) True(1) True(1) True(1) True(1) False(0) True(1) True(1) False(0) > x<-c(6,2,8) > y<-c(14,6,7) > z<-c(4,5,11) > z1<-x>y > z1 [1] FALSE FALSE TRUE > z2<-y>z > z2 [1] TRUE TRUE FALSE > z3<-(x>y) & (y>z) > z3 [1] FALSE FALSE FALSE > z1<-xor(x,y) > z1 [1] FALSE FALSE FALSE Sequence Generation and Repeats > x1 [1] 0.0 0.5 1.0 1.5 2.0 2.5 3.0 > x2 <- seq(from=0.4,by=0.01,length=15) > x2 [1] 0.40 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 > x3<-seq(1.4,2.1,0.3) > x3 [1] 1.4 1.7 2.0 > x4<-rep(15,7) > x4 [1] 15 15 15 15 15 15 15 > x5<-rep(1:4,3) > x5 [1] 1 2 3 4 1 2 3 4 1 2 3 4 > x6<-rep(1:3,each=2,times=3) > x6 [1] 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 > x7<-rep(c("a","b","c"),c(1,2,3)) > x7 [1] "a" "b" "b" "c" "c" "c" Random Number Generation > set.seed(100) > runif(5) [1] 0.5465586 0.1702621 0.6249965 0.8821655 0.2803538 > runif(5) [1] 0.3984879 0.7625511 0.6690217 0.2046122 0.3575249 > x<-c(5,10,8,6,9,11,14,16,18) > sample(x) [1] 6 11 18 9 8 16 10 5 14 > sample(x) [1] 16 9 10 8 18 14 11 6 5 > sample(x,4) [1] 10 11 14 5 Vector Functions Length and Statistics > x<-c(6,9,11,14,12,2,33,76,0,90) Function R command Function R command Length > length(x) [1] 10 Mean > mean(x) [1] 25.3 Max > max(x) [1] 90 Min > min(x) [1] 0 Distribution > quantile(x) 0% 25% 50% 75% 100% 0.00 6.75 11.50 28.25 90.00 Sort > sort(x) [1] 0 2 6 9 11 12 14 33 76 90 Function R command Reference the 5th element of Vector from the vector > x[5] [1] 12 Delete the 3rd element of vector from the vector > x1<-x[-3] > x1 [1] 6 9 14 12 2 33 76 0 90 Delete the last element of vector from the vector > x2<-x[-length(x)] > x2 [1] 6 9 11 14 12 2 33 76 0 Delete 1st and the last element of vector from the vector > x3<-x[c(-1,-length(x))] > x3 [1] 9 11 14 12 2 33 76 0 Remove the smallest 2 and the largest 3 element from the vector > trim <-function(x)sort(x)[-c(1,2,length(x)-2,length(x)-1,length(x))] > trim(x) [1] 6 9 11 12 14 R code Sum > sum(x) [1] 253 Mean,Median > mean(x) [1] 25.3 > median(x) [1] 11.5 Range > range(x) [1] 0 90 Standard Deviation,variance > sd(x) [1] 31.87841 > var(x) [1] 1016.233 Which is the largest and smallest number > which(x==max(x)) [1] 10 > which(x==min(x)) [1] 9 sort and reverse sort > sort(x) [1] 0 2 6 9 11 12 14 33 76 90 > rev(sort(x)) [1] 90 76 33 14 12 11 9 6 2 0 > x<-matrix(rpois(15,1.2),nrow=3) > x [,1] [,2] [,3] [,4] [,5] [1,] 2 1 0 3 3 [2,] 0 2 3 1 2 [3,] 2 2 0 1 1 > mean(x[,5]) [1] 2 > var(x[3,]) [1] 0.7 > rowSums(x) [1] 9 8 6 > colSums(x) [1] 4 5 3 5 6 > rowMeans(x) [1] 1.8 1.6 1.2 > colMeans(x) [1] 1.333333 1.666667 1.000000 1.666667 2.000000 Parallel min and max > x<-c(2,5,10,-6,29,45) > y<-c(5,9,15,-22,38,88) > z<-c(9,10,2,7,55,24) > q<-c(22,3,5,6,-23,88) > pmin(x,y,z,q) [1] 2 3 2 -22 -23 24 > pmax(x,y,z,q) [1] 22 10 15 7 55 88 'table' and 'tapply' > data(ChickWeight) weight Time Chick Diet 1 42 0 1 1 2 51 2 1 1 3 59 4 1 1 4 64 6 1 1 5 76 8 1 1 6 93 10 1 1 ....................... 576 234 18 50 4 577 264 20 50 4 578 264 21 50 4 > tapply(ChickWeight$weight,ChickWeight$Time,mean) 0 2 4 6 8 10 12 14 41.06000 49.22000 59.95918 74.30612 91.24490 107.83673 129.24490 143.81250 16 18 20 21 168.08511 190.19149 209.71739 218.68889 > tapply(ChickWeight$weight,ChickWeight$Diet,median) 1 2 3 4 88.0 104.5 125.5 129.5 > codon1=c("UUU","UUC","UUA","UUG","UUA","UUG","UUC") > table(codon1) codon1 UUA UUC UUG UUU 2 2 2 1 > aminoacid=list(Phe=c("UUU","UUC"),Leu=c("UUA","UUG")) > codon=as.factor(codon1) > levels(codon)=aminoacid > codon [1] Phe Phe Leu Leu Leu Leu Phe Levels: Phe Leu > table(codon) codon Phe Leu 3 4 'apply' > x<-matrix(1:15,nrow=3,byrow=T) > x [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10 [3,] 11 12 13 14 15 > apply(x,1,sum) [1] 15 40 65 > apply(x,2,sum) [1] 18 21 24 27 30 > apply(x,1,sqrt) [,1] [,2] [,3] [1,] 1.000000 2.449490 3.316625 [2,] 1.414214 2.645751 3.464102 [3,] 1.732051 2.828427 3.605551 [4,] 2.000000 3.000000 3.741657 [5,] 2.236068 3.162278 3.872983 > apply(x,2,sqrt) [,1] [,2] [,3] [,4] [,5] [1,] 1.000000 1.414214 1.732051 2.000000 2.236068 [2,] 2.449490 2.645751 2.828427 3.000000 3.162278 [3,] 3.316625 3.464102 3.605551 3.741657 3.872983 Closets > x<-c(3,22,15,11,50,85) > x-10 [1] -7 12 5 1 40 75 > abs(x-10) [1] 7 12 5 1 40 75 > min(abs(x-10)) [1] 1 > which(abs(x-10)==min(abs(x-10))) [1] 4 Sort,Rank,Order > x<-c(2,5,10,-6,29,45) > # rank: the rank of unsorted vector > rank(x) [1] 2 3 4 1 5 6 > # order:the rank of the sorted vector > order(x) [1] 4 1 2 3 5 6 Unique and Duplicated > x<-c("a","b","c","a","a","a","b","c") > table(x) x a b c 4 2 2 > unique(x) [1] "a" "b" "c" > duplicated(x) [1] FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE > x[!duplicated(x)] [1] "a" "b" "c" Run length > x<-rpois(20,0.5) > x [1] 2 0 0 1 0 1 0 0 1 1 0 0 2 0 0 0 0 0 0 0 > rle(x) Run Length Encoding lengths: int [1:10] 1 2 1 1 1 2 2 2 1 7 values : int [1:10] 2 0 1 0 1 0 1 0 2 0 Set functions > setA <-c("I","II","III","IV","V") > setB <-c("III","IV","V","VI") > union(setA,setB) [1] "I" "II" "III" "IV" "V" "VI" > intersect(setA,setB) [1] "III" "IV" "V" > setdiff(setA,setB) [1] "I" "II" > setdiff(setB,setA) [1] "VI" Practise Reference