手动创建一个数据框(数据框每一列的数据类型必须相同,列与列之间可以不同
patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c("Type1","Type2","Type3","Type2")
status <- c("poor","Improved","Excellent","poor")
patientsData <- data.frame(patientID,age,diabetes,status)
patientsData
patientID age diabetes status
1 1 25 Type1 poor
2 2 34 Type2 Improved
3 3 28 Type3 Excellent
4 4 52 Type2 poor
读取数据框中的第一列和第二列
patientsData[1:2]
patientID age
1 1 25
2 2 34
3 3 28
4 4 52
根据列名读取数据
patientsData[c("diabetes","status")]
diabetes status
1 Type1 poor
2 Type2 Improved
3 Type3 Excellent
4 Type2 poor
使用$符号读取数据
patientsData$age
[1] 25 34 28 52
如何做到只输入列名,就可以读取数据呢? 这里用的高attach()函数,它可以把数据集加入搜索路径里
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
mtcars$mpg
[1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
[16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
[31] 15.0 21.4
mpg
错误: 找不到对象'mpg'
attach(mtcars)
mpg
[1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
[16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
[31] 15.0 21.4
用detach方法将数据集从搜索路径里面删除
detach(mtcars)
mpg
错误: 找不到对象'mpg'
with方法,将mpg赋值给l,并打印l。 注意这里的l只在大括号里面有用,脱离with之后,l失效。
with(mtcars,{
l <- mpg
l}
)
[1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
[16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
[31] 15.0 21.4
l
错误: 找不到对象'l'
列表
使用list来创建一个列表
g <- "My first list"
h <- c(12,45,43,90)
j <- matrix(1:10,nrow=2)
k <- c("one","two","three")
mylist = list(g,h,j,k)
mylist
[[1]]
[1] "My first list"
[[2]]
[1] 12 45 43 90
[[3]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
[[4]]
[1] "one" "two" "three"
list通过双重[[]]进行访问
mylist[[2]]
[1] 12 45 43 90