【发布时间】:2021-12-18 08:50:15
【问题描述】:
age <- c(22,24,NA,27)
duedate <- as.Date(c("1/1/2020",NA,"1/30/2020","12/31/2021"), format="%m/%d/%Y")
df <- data.frame(age,duedate)
Minimum <- sapply(df, function(x) min(x,na.rm=T))
Maximum <- sapply(df, function(x) max(x,na.rm=T))
tbl <- data.frame(min_scale,max_Scale)
print(tbl)
tbl[2,1] <- as.Date(tbl[2,1],origin = "1970-01-01") #Do not work
制作表格后,日期已更改为数值,我无法将其返回。 有什么建议吗?我想像正确的表格一样显示日期。 我想尽可能地自动完成,因为我有很多变量。
【问题讨论】:
-
使用
lapply而不是sapply。向量中不能有混合类型。由于 Age 无法转换为日期,因此 Age 和 Duedate 都将转换为数值。如果您使用lapply获取列表,则可以有混合类型。但即便如此,您也不能在 data.frame 的列中使用混合类型。如果这只是为了让事情看起来更漂亮,您需要将所有内容转换为字符串/字符值以保留格式。 -
R 中的日期是数字类型,因此当属性在简化为数组的过程中被删除时,日期会显示它们的基础值。当前的代码没有意义,因为名称 min_scale 和 max_scale 显然应该是最小值和最大值。