在R语言数据框中将时间戳转datetime时出现重复值问题
解决方法
首先排查timestamp列的数据类型,这是问题的核心:
先执行
class(mightysat$timestamp)查看列类型,再对应处理:- 如果是列表列:需要先将其转换为数值向量,再转换为datetime格式:
# 基础R方法 mightysat <- mightysat %>% mutate(datetime = as_datetime(unlist(timestamp))) # 或者用purrr包的扁平化函数 library(purrr) mightysat <- mightysat %>% mutate(datetime = as_datetime(flatten_dbl(timestamp))) - 如果是因子类型:先转字符再转数值,最后转datetime:
mightysat <- mightysat %>% mutate(datetime = as_datetime(as.numeric(as.character(timestamp)))) - 如果是字符型:先转换为数值型再转datetime:
mightysat <- mightysat %>% mutate(datetime = as_datetime(as.numeric(timestamp)))
- 如果是列表列:需要先将其转换为数值向量,再转换为datetime格式:
另外检查是否存在分组:如果之前执行过
group_by未取消,可能导致异常。执行groups(mightysat)查看,若有分组先取消:mightysat <- mightysat %>% ungroup() %>% mutate(datetime = as_datetime(timestamp))
内容的提问来源于stack exchange,提问作者ChrisD
相关产品推荐
相关产品推荐

