數(shù)據(jù)幀是表或二維陣列狀結(jié)構(gòu),其中每一列包含一個變量的值,并且每一行包含來自每一列的一組值。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供東河網(wǎng)站建設(shè)、東河做網(wǎng)站、東河網(wǎng)站設(shè)計、東河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、東河企業(yè)網(wǎng)站模板建站服務(wù),十余年東河做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
以下是數(shù)據(jù)幀的特性。
- 列名稱應(yīng)為非空。
- 行名稱應(yīng)該是唯一的。
- 存儲在數(shù)據(jù)幀中的數(shù)據(jù)可以是數(shù)字,因子或字符類型。
- 每個列應(yīng)包含相同數(shù)量的數(shù)據(jù)項。
創(chuàng)建數(shù)據(jù)幀
# Create the data frame.
emp.data <- data.frame(
emp_id = c (1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
salary = c(623.3,515.2,611.0,729.0,843.25),
start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",
"2015-03-27")),
stringsAsFactors = FALSE
)
# Print the data frame.
print(emp.data)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
emp_id emp_name salary start_date
1 1 Rick 623.30 2012-01-01
2 2 Dan 515.20 2013-09-23
3 3 Michelle 611.00 2014-11-15
4 4 Ryan 729.00 2014-05-11
5 5 Gary 843.25 2015-03-27
獲取數(shù)據(jù)幀的結(jié)構(gòu)
通過使用str()函數(shù)可以看到數(shù)據(jù)幀的結(jié)構(gòu)。
# Create the data frame.
emp.data <- data.frame(
emp_id = c (1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
salary = c(623.3,515.2,611.0,729.0,843.25),
start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",
"2015-03-27")),
stringsAsFactors = FALSE
)
# Get the structure of the data frame.
str(emp.data)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
'data.frame': 5 obs. of 4 variables:
$ emp_id : int 1 2 3 4 5
$ emp_name : chr "Rick" "Dan" "Michelle" "Ryan" ...
$ salary : num 623 515 611 729 843
$ start_date: Date, format: "2012-01-01" "2013-09-23" "2014-11-15" "2014-05-11" ...
數(shù)據(jù)框中的數(shù)據(jù)摘要
可以通過應(yīng)用summary()函數(shù)獲取數(shù)據(jù)的統(tǒng)計摘要和性質(zhì)。
擴展數(shù)據(jù)幀
可以通過添加列和行來擴展數(shù)據(jù)幀。
添加列
只需使用新的列名稱添加列向量。
添加行
要將更多行永久添加到現(xiàn)有數(shù)據(jù)幀,我們需要引入與現(xiàn)有數(shù)據(jù)幀相同結(jié)構(gòu)的新行,并使用rbind()函數(shù)。
在下面的示例中,我們創(chuàng)建一個包含新行的數(shù)據(jù)幀,并將其與現(xiàn)有數(shù)據(jù)幀合并以創(chuàng)建最終數(shù)據(jù)幀。
# Create the first data frame.
emp.data <- data.frame(
emp_id = c (1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
salary = c(623.3,515.2,611.0,729.0,843.25),
start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",
"2015-03-27")),
dept = c("IT","Operations","IT","HR","Finance"),
stringsAsFactors = FALSE
)無錫婦科醫(yī)院 http://www.wxbhnkyy39.com
# Create the second data frame
emp.newdata <- data.frame(
emp_id = c (6:8),
emp_name = c("Rasmi","Pranab","Tusar"),
salary = c(578.0,722.5,632.8),
start_date = as.Date(c("2013-05-21","2013-07-30","2014-06-17")),
dept = c("IT","Operations","Fianance"),
stringsAsFactors = FALSE
)
# Bind the two data frames.
emp.finaldata <- rbind(emp.data,emp.newdata)
print(emp.finaldata)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
emp_id emp_name salary start_date dept
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 5 Gary 843.25 2015-03-27 Finance
6 6 Rasmi 578.00 2013-05-21 IT
7 7 Pranab 722.50 2013-07-30 Operations
8 8 Tusar 632.80 2014-06-17 Fianance