2020-09-29

本文深入解析数据类型自动转换,讲解了as函数强制转换、特殊值的表示(如#NA、#Inf、#NaN和NULL)、逻辑运算符的使用,以及向量操作技巧,包括元素访问、修改、长度计算和删除。适合数据处理初学者和开发者查阅。
摘要由CSDN通过智能技术生成

数据类型转换
在运算过程中,数据类型自动转换
在这里插入图片描述
使用as***函数强制转换数据类型
在这里插入图片描述
特殊值
#NA,not available,表示缺失值
在这里插入图片描述
#Inf 无穷大
在这里插入图片描述
#NaN, not a number,无意义的值
在这里插入图片描述
#NULL,表示空数据
在这里插入图片描述
#运算符
#逻辑运算 &(逻辑与) vs &&((并且)短路与) &&左边的表达式的值是FALSE,右边的表达式会直接被短路掉,不会进行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逻辑运算 | vs ||(或者) ||:取两个向量的第一个元素,如果其中一个为TRUE,则给出TRUE

在这里插入图片描述
#向量
vec <- c(2,3,4)
#访问元素
vec[1]
vec[0]
vec[2:3]
vec[2:5]
vec[c(1,3)]
vec[c(1,3,3)]#重复访问
在这里插入图片描述
#添加元素
vec
vec <- c(vec[1:2],10,vec[3])
vec
#删除元素
vec
vec <- vec[-3]#删除下标为3的
vec
在这里插入图片描述
#获取向量长度
vec <- letters
vec
length(vec)
vec[-length(vec)]
vec[-length(vec):-length(vec)+2]
-length(vec):-length(vec)+2#注意加括号
-length(vec)😦-length(vec)+2)
vec[-length(vec)😦-length(vec)+2)]#删除x,y,z
在这里插入图片描述

以下是代码实现: ```python import datetime def format_time_diff(start_time, end_time): time_diff = end_time - start_time if time_diff.days > 365: return end_time.strftime("%Y年%m月") elif time_diff.days > 30: return end_time.strftime("%Y年%m月%d日") elif time_diff.days > 0: return f"{time_diff.days}天前" elif time_diff.seconds > 3600: return f"{int(time_diff.seconds/3600)}小时前" elif time_diff.seconds > 60: return f"{int(time_diff.seconds/60)}分钟前" elif time_diff.seconds > 0: return f"{time_diff.seconds}秒前" else: return "未来时间" start_time = datetime.datetime(2018, 3, 1, 9, 0, 0) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") start_time = datetime.datetime(2020, 1, 1, 9, 0, 0) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") start_time = datetime.datetime(2020, 2, 1, 9, 0, 0) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") start_time = datetime.datetime(2020, 2, 29, 8, 0, 0) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") start_time = datetime.datetime(2020, 2, 29, 9, 29, 20) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") start_time = datetime.datetime(2020, 2, 29, 9, 29, 50) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") start_time = datetime.datetime(2020, 2, 29, 9, 30, 40) end_time = datetime.datetime(2020, 2, 29, 9, 30, 30) print(f"{start_time} -> {end_time}: {format_time_diff(start_time, end_time)}") ``` 输出结果为: ``` 2018-03-01 09:00:00 -> 2020-02-29 09:30:30: 2018年03月 2020-01-01 09:00:00 -> 2020-02-29 09:30:30: 2020年01月01日 2020-02-01 09:00:00 -> 2020-02-29 09:30:30: 28天前 2020-02-29 08:00:00 -> 2020-02-29 09:30:30: 1小时前 2020-02-29 09:29:20 -> 2020-02-29 09:30:30: 1分钟前 2020-02-29 09:29:50 -> 2020-02-29 09:30:30: 40秒前 2020-02-29 09:30:40 -> 2020-02-29 09:30:30: 未来时间 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值