第三章 检查变量和工作区

第三章 检查变量和工作区

3.1类
3.2不同类型的数字
3.3其他通用类
3.4检查和更改类
3.5检查变量
3.6工作区

3.1类
除了类还存在内部存储的状态(typeof),模式(mode),存储模式(storge.mode) 其他类型了解即可
简单起见,模式(mode)==类(class)来接下来的学习
变量的类型(class):numeric浮点数 integer整数 complex复数 logical逻辑值 character字符等

#3.2不同类型的数字
#检查变量类型class
class(sqrt(1:10))
class(3+1i)
class(1) #往下看后面有解释
class(1L) #添加后缀L把数字变成整型
class(0.5:4.5)
class(1:5)
'numeric'
'complex'
'numeric'
'integer'
'numeric'
'integer'
#3.3其他通用类
#character存储文本的字符
#factor存储二进制数据的原始值raw 类别数据用整数表示 
#因子的内容看起来与他们所对应的的字符一样,每个值都能得到一个可读性很好的标签,标签被设置在称为因子水平的特定之中。
#节省空间便于操作
(gender <- factor(c("male","female","male","female")))
levels(gender)
nlevels(gender)
#默认情况下,因子按字母顺序排列
#因子的值被存储为整数而非字符。可以通过as.integer()调用
as.integer(gender)
#因为操作因子水平的内容时,大小写等问题,所以先处理一下字符串 利用character函数完成
as.character(gender)
malefemalemalefemale
Levels:
'female''male'
2
2121
'male''female''male''female'
#as.raw()可以把0到225之间的整数转化为原始值(raw) 此范围之外的数字全部视为0,分数和虚部不可用,对于字符串则使用charToRaw()
as.raw(1:17)
(a<- charToRaw("Fish!"))
class(a)
#其它类型的变量列入多维对象,数据框还有待学习
 [1] 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
[1] 46 69 73 68 21
'raw'
#3.3检查和更改类
#class()和is函数都可以都可以测试数据的类型
#大部分类的is.*函数比is函数更高效
is.character("red")
is.logical(FALSE)
is.list(list(a=1,b=2))
TRUE
TRUE
TRUE
#^is的意思是满足is开头字符串
#查看base包中所有is函数
ls(pattern = "^is",baseenv())#^is的意思是满足is开头字符串
'is.array''is.atomic''is.call''is.character''is.complex''is.data.frame''is.double''is.element''is.environment''is.expression''is.factor''is.finite''is.function''is.infinite''is.integer''is.language''is.list''is.loaded''is.logical''is.matrix''is.na''is.na.data.frame''is.na.numeric_version''is.na.POSIXlt''is.na<-''is.na<-.default''is.na<-.factor''is.na<-.numeric_version''is.name''is.nan''is.null''is.numeric''is.numeric_version''is.numeric.Date''is.numeric.difftime''is.numeric.POSIXt''is.object''is.ordered''is.package_version''is.pairlist''is.primitive''is.qr''is.R''is.raw''is.recursive''is.single''is.symbol''is.table''is.unsorted''is.vector''isatty''isBaseNamespace''isdebugged''isFALSE''isIncomplete''isNamespace''isNamespaceLoaded''isOpen''isRestart''isS4''isSeekable''isSymmetric''isSymmetric.matrix''isTRUE'
#is.numeric函数是对整数和浮点数都返回TRUE,则测试浮点数必须用is.double()
#R中的浮点数和整数几乎可以互换使用,只要添加L就可以互换
#
#
#转型(改变对象类型)可以用as函数或者as.numeric更高效 #分配新类问题在后面学习
x <- "123.456"
as(x,"numeric")
as.numeric(x)
#补充 options(digits=n)可以决定答应到小数点后几位
123.456
123.456
#3.4检查变量
#当在控制台输入一个运算或变量时,结果会被打印出来,因为R隐式调用了print函数
#对于内循环和函数来说,自动打印功能不能起作用,则需要调用print
a<- c(1,2,3,4,5)
for(i in a) i#没有显示
for(i in a) print(i)
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
#summary函数能为不同数据提供汇总信息
#runif函数生成30个均匀分布在0和1之间的随机数
num <-runif(30)
summary(num)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.01316 0.30141 0.50113 0.49163 0.77021 0.93429 
#sample表示随机抽样
#类别变量和逻辑变量将根据每个值的计算进行汇总
fac <- factor(sample(letters[1:5],30,replace = TRUE))#letters为内置常数包括a到z LETTERS为A到Z letters[1:5]表示a到e
summary(fac)
bool <- sample(c(TRUE,FALSE,NA),30,replace = TRUE)#sample表示随机抽样
summary(bool)
a7b4c4d9e6
   Mode   FALSE    TRUE    NA's 
logical      14       4      12 
#多维数组的检查
#head()查看前几行
#summary()和以上所用一样
#str()能显示对象的结构
#unclass()显示变量如何构建,
#attributes()显示当前对象所有属性列表
#View()#会把只读的变量显示为电子表格
#3.5工作区
#ls可以列出现有变量的名称 传入all.names=TRUE参数即可查看
ls()
#ls.str函数查看变量结构
ls.str()

'a''auth''bool''fac''gender''get_user_secret''GET_USER_SECRET_ENDPOINT''i''KAGGLE_BASE_URL''KAGGLE_IAP_TOKEN''KAGGLE_USER_SECRETS_TOKEN''num''TokenBigQueryKernel''x'
a :  num [1:5] 1 2 3 4 5
auth : Classes 'AuthState', 'R6'  ── <AuthState (via gargle)> ────────────────────────────────────────────────────     package: bigrquery         app: NULL     api_key:  auth_active: TRUE credentials: <TokenBigQueryKernel> 
bool :  logi [1:30] FALSE TRUE TRUE FALSE FALSE FALSE ...
fac :  Factor w/ 5 levels "a","b","c","d",..: 5 1 2 4 4 3 5 4 5 4 ...
gender :  Factor w/ 2 levels "female","male": 2 1 2 1
get_user_secret : function (label)  
GET_USER_SECRET_ENDPOINT :  chr "/requests/GetUserSecretRequest"
i :  num 5
KAGGLE_BASE_URL :  chr "https://www.kaggle.com"
KAGGLE_IAP_TOKEN :  chr ""
KAGGLE_USER_SECRETS_TOKEN :  chr "eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..BAXUG03K-mbUm4isxiBFWA.VOZJLpUEMW128sGTwb2kwRKGAKZ_9lTYHXXna2S"| __truncated__
num :  num [1:30] 0.859 0.0132 0.9094 0.8398 0.5964 ...
TokenBigQueryKernel : Class 'R6ClassGenerator' <TokenBigQueryKernel> object generator
  Inherits from: <Token2.0>
  Public:
    params: list
    endpoint: oauth_endpoint
    initialize: function () 
    can_refresh: function () 
    refresh: function () 
    cache: function (path) 
    load_from_cache: function () 
    clone: function (deep = FALSE) 
  Parent env: <environment: R_GlobalEnv>
  Locked objects: TRUE
  Locked class: FALSE
  Portable: TRUE 
x :  chr "123.456"
#browseEnv提供以上类似功能
browseEnv()
R objects in .GlobalEnv environment is shown in browser ‘xdg-open’ 
#rm函数删除变量来清理区间 rm()
#rm(list=ls())删除所有变量
#rm函数删除变量来清理区间 rm()
#rm(list=ls())删除所有变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值