数据框是一种特殊的数据结构,它通常用来存储数据表格或电子表格形式的数据。数据框中的毎一列代表一个特定的属性或字段,而行由这些列的具体取值组成。这种数据结构在处理有大量字段和属性的数据集时十分有用。
建立数据框
使用函数data.frame可以很容易建立数据框。下面将演示几个例子进行说明,我们将以一些受欢迎的超级明星为例进行说明:
## Creating Data Framesdf <- data.frame(real.name = c("Bruce Wayne", "Clark Kent", "Slade Wilson", "Tony Stark", "Steve Rogers"),superhero.name = c("Batman", "Superman", "Deathstroke", "Iron Man", "Capt. America"),franchise = c("DC", "DC", "DC", "Marvel", "Marvel"),team = c("JLA", "JLA", "Suicide Squad", "Avengers", "Avengers"),origin.year = c(1939, 1938, 1980, 1963, 1941))
输出:
class(df)str(df)
使用str函数能够给出数据框的详细结构,从中我们可以了解数据框中的每一列数据的详细信息。
rownames(df)colnames(df)dim(df)
数据框操作
df[2:4,]df[2:4, 1:2]subset(df, team=="JLA", c(real.name, superhero.name, franchise))subset(df, team %in% c("Avengers","Suicide Squad"), c(real.name, superhero.name, franchise))
现在我们将用rbind和cbind函数与之前在数组和矩阵中的作用是一样的。而merge函数可以让你像连接关系数据框中的多个表格那样来合并数据框。
df1 <- data.frame(id = c('emp001', 'emp003', 'emp007'),name = c('Harvey Dent', 'Dick Grayson', 'James Bond'),alias = c('TwoFace', 'Nightwing', 'Agent 007'))df2 <- data.frame(id = c('emp001', 'emp003', 'emp007'),location = c('Gotham City', 'Gotham City', 'London'),speciality = c('Split Persona', 'Expert Acrobat', 'Gadget Master'))df1df2rbind(df1, df2) # not possible since column names don???t matchcbind(df1, df2)merge(df1, df2, by="id")