欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言 data.frame()命令的使用說明

 更新時間:2021年04月01日 09:26:19   作者:紅金龍-時光  
這篇文章主要介紹了R語言 data.frame()命令的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

同expand.grid() 一樣,data.frame() 也是一個生產(chǎn)數(shù)據(jù)框的命令

不同的是,兩者產(chǎn)生的結(jié)果,要求不一樣

data.frame() 的命令,如

data.frame(x=c(1:4),m=c(10,20,30),n=c(5:16))
  x m n
1 1 10 5
2 2 20 6
3 3 30 7
4 4 10 8
5 1 20 9
6 2 30 10
7 3 10 11
8 4 20 12
9 1 30 13
10 2 10 14
11 3 20 15
12 4 30 16

其中,對于x,m,n所包含的個數(shù)是有限制的

具體表現(xiàn)在三者或者更多所包含的個數(shù)這些數(shù)值【x(4),m(3),n(12)】的最小公倍數(shù)為其中一個(最大的那個數(shù))

結(jié)果的排列也是不一樣的

首先,行數(shù)為最多那組含有的數(shù)的個數(shù)

所有的循環(huán)均為依次循環(huán),不像expand.grid()中的后面的還需要先重復之后再循環(huán)

補充:R 語言處理excel為data.frame

使用 R包 xlsx 或者 openxlsx

安裝

install.packages("xlsx", repos="https://cloud.r-project.org/")
install.packages("openxlsx", repos="https://cloud.r-project.org/")

使用

文件名+sheet的序號讀取指定sheet的內(nèi)容

data <- read.xlsx("Lipstick.xlsx", sheet = 1) # 讀取excel
View(data)
## data 為 data.frame
# 讀取 table 分隔的文本文件
data = read.table(file.txt, sep="\t", header=T);

訪問 data.frame 的元素

查看列名 colnames(data)

查看行名 rownames(data)

提取指定行

data[2,] 提取第二行

提取指定列

data[c("列名1", "列名2", "列名3")] 

data[2] 提取第二列

data[2:4] 提取第2-4列

如果只訪問1列,返回的是 vector 類型,可以使用 [[ ]] 或者 $ 來訪問 data[[2]] 或者 data$列名

默認情況下,字符串向量會被自動識別成 Factor

向 data.frame 中添加新列 新添加的列的行數(shù)要和表中的列的行數(shù)相同

data$新列名 <- 數(shù)據(jù)
data$新列名 <- as.integer(format(Sys.Date(), "%Y")) - as .integer(format(sutdent$birthday, "%Y"))

查詢/子集

查詢一個data.frame,返回一個滿足條件的子集,這相當于數(shù)據(jù)庫中的表查詢,是非常常見的操作。

使用行和列的index來獲取子集是最簡單的方法,詳情見前面。

當然也可以使用布爾向量,配合which函數(shù)來實現(xiàn)對行的過濾。

比如我們要查詢所有Gender為F的數(shù)據(jù),那么我們首先通過student$Gender=="F" 得到一個布爾向量:FALSE FALSE ... TRUE,然后使用 which 函數(shù)可以將布爾向量中的TRUE的index返回,完整語句如下

student[which(student$Gender=="F")] 

如果我們想知道所有女生的年齡,

student[which(student$Gender=="F"), "Age"]

另外可以直接使用 subset() 函數(shù),比如把查詢年齡改為 <30 的女性,查詢姓名和年齡,如下

subset(student, Gender=="F" & Age < 30, select=c("Name", "Age"))

使用SQL查詢 Data Frame 使用 sqldf 包

library(sqldf)
result <- sqldf("select Name, Age from student where Gender='F' and Age > 30")

連接/合并

對于數(shù)據(jù)庫來說,對多表進行 join 查詢是一個很正常的事,在R中也可以對多個 Data.frame 進行連接,需要使用 merge() 函數(shù)

result <- merge(student,score,by.x="ID",by.y="SID")

使用 rbind() 函數(shù) rbind 的兩個 Data frame 必須有相同的列

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評論