R語言學習筆記

2021-09-28 15:08:45 字數 1850 閱讀 1991

二、data.frame資料框的常用操作

三、讀取資料檔案

四、排序函式(sort,rank,order)的區別

>mydata

tid s1 s2

1 1 2 1

2 1 2 1

3 1 3 2

4 2 4 3

5 3 5 4

>unique(mydata)

tid s1 s2

1 1 2 1

3 1 3 2

4 2 4 3

5 3 5 4

>unique(mydata[,1])

[1] 1 2 3

setdiff(x=1:4,y=2:5)

[1] 1

data frame一般被翻譯為資料框,感覺就像是r中的表,由行和列組成,與matrix不同的是,每個列可以是不同的資料型別,而matrix是必須相同的。

data frame每一列有列名,每一行也可以指定行名。如果不指定行名,那麼就是從1開始自增的sequence來標識每一行。

student<-data.frame(id=c(11,12,13),name=c("devin","edward","wenli"),gender=c("m","m","f"),birthdate=c("1984-12-29","1983-5-6","1986-8-8」))
使用names函式可以檢視列名,如果要檢視行名,需要用到row.names函式。這裡我們希望將id作為行名,那麼可以這樣寫

row.names(student)<-student$id
更簡單的辦法是在初始化date.frame的時候,有引數row.names可以設定行名的向量。

如果訪問id和name列

idname<-student[c("id","name」)]
如果是只訪問某一列,返回的是vector型別的,那麼可以使用[[或者$來訪問。比如我們要所有student的name,**為:

name<-student[[2]] 或者name<-student[[「name」]] 或者name<-student$name
預設情況下,字串向量都會被自動識別成factor,也就是說,id是數字型別,其他的3個列都被定義為factor型別了。顯然這裡name應該是字串型別,birthdate應該是date型別,我們需要對列的資料型別進行更改:

student$name<-as.character(student$name)

student$birthdate<-as.date(student$birthdate)

比如新增age列

student$age<-as.integer(format(sys.date(),"%y"))-as.integer(format(student$birthdate,"%y」))
data.table中fread()函式比readr包中的函式讀取更快,

但支援windows上的gbk編碼和utf-8編碼

x<-c(97,93,85,74,32,100,99,67)

sort(x)

[1] 32 67 74 85 93 97 99 100

rank(x)

[1] 6 5 4 3 1 8 7 2

order(x)

[1] 5 8 4 3 2 1 7 6

R語言學習筆記

1.資料輸入 read.table n fileposition 函式 eg.x read.table c users administrator desktop 1.txt header t 目前只知道可以完好地讀入txt檔案 空格隔開 excel不支援 csv讀入不完全。ps.可以用excel生...

R語言學習筆記

r語言的特點 r網路資源 常用命令 安裝某個包 install.packages alr4 檢視函式用法 比如要實現t檢驗,可以輸入?t.test 然後重點看usage和example。也可以用help t.test lm函式名及所在包 fitting linear models標題 descrip...

R語言學習筆記1

1 中文文字挖掘軟體包 tmcn 2 用來消除兩向量 列表 資料框等中的相同行或列用函式 setdiff 3 建立乙個空陣列,用來裝不確定長度資料用方法 a 4 將字串格式日期轉換為date格式用函式 as.date 以數值形式儲存,對於r中規定的標準格式 年 月 日或者 年 月 日,則可以不需要用...