x<-c(1,2,3);y<-c(2,3,8)
lmout<-lm(y~x)
class(lmout)#判断属于什么类
unclass(lmout)#去掉类属性
methods(print)#找到给定泛型函数的所有实现方法,得到的结果中*标注的是不可见函数
#可通过getAnywhere()找到他们,再用命名空间限定符访问它们
#例如:print.aspell(),aspell()对其参数所指定的文件做拼写检查
a<-list(name="xiong",salary=50000,union=T)
attributes(a)#对象的结构框架
b<-matrix(1:9,3,3)
row(b)#返回大小相同的矩阵,元素为对应的行号
col(b)
c<-as.dist(b)
setClass("employee",representation(name="character",salary="numeric",union="logical"))#定义一个类 employee
joe<-new("employee",name="Joe",salary=50000,union=T)#为类创建一个实例
slot(joe,"salary")<-80000#改变实例joe的薪水
ls(pattern="ut")#给出所有含ut的对象
save(a,"hzfile")#保存对象到硬盘上
rm(a)#移除
ls()#这时候已经不存在了
load("hzfile")#在R的内存空间中恢复对象
exists("a")#判断对象a是否存在
#10. 输入与输出
scan("afile.txt")#从afile文件中读取或者用键盘输入,默认是数值型
#若是字符模式,则需要改成:
scan("afile.txt",what="")#what=""把字符赋值给what。表明用字符模式
scan("afile.txt",sep="\n")#sep设置为换行符,把每行当做一个字符串读入
a<-scan("")#把文件名设定为空字符串,从键盘读取数据,键入一个空行表示结束输入
b<-readline()#从键盘输入单行数据
datac<-readline("type your datac:")#指定一个提示语
print(a)#与直接键入变量名的区别是,直接键入不能在函数体内部打印变量
cat(a)#比print好用,因为print只能输出一个表达式,且输出内容带编号
cat("a","b","c\n",sep="\n")
scan不能正确读取数据框,因为其中数值和字符混杂(还含有表头)
?connection #查看文件连接函数的列表
seek()#从文件某个位置读取
close()#关闭连接
#cat函数同样可以用来写入文件:
cat("abc\n",file="afile")
cat("de\n",file="afile",append=T)#一次写入一部分
c<-file("afile","w")
writelines("fg",c)
close(c)
d<-dir()#返回当前工作目录下所有文件的名称
f<-file.path(d,"afile")#把d、斜杠、afile拼接起来
file.info(f)#返回一个包含文件所有信息的数据框